2011-07-06 1 views
1

いくつかの異なるライブラリを使用するアンドロイドアプリケーションをエクスポートしようとしています。ライブラリのうち2つはjarファイルですが、他のライブラリはリンクされたプロジェクトです。例えば、ライブラリの1つはマップビューバルーンビューです。ライブラリを使用するには、プロジェクトを自分のワークスペースに追加し、プロジェクトプロパティに移動し、Androidの下でプロジェクトを「ライブラリとして使用」とマークしました。そして、私が構築しているアプリケーションでは、(Androidメニューの)パスを使ってプロジェクトライブラリをリンクしました。アプリケーションが正しくエクスポートされますが、私の開発者の電話でアプリケーションを実行しようとすると、次のエラーでクラッシュします。Androidプロゴアードがリンクされたプロジェクトライブラリを使用してAPKを実行するときに問題が発生する

07-06 13:50:00.238:エラー:AndroidRuntime(3282):原因:java.lang。 ClassNotFoundException:ローダーのcom.markupartist.android.widget.ScrollingTextView dalvik.system.PathClassLoader [/system/framework/com.google.android.maps.jar:/data/app/com.alltrails-1.apk]

-dontwarn -dontnote -dontskipnonpubliclibraryclasses -libraryjarsのlibs/osmdroid-アンドロイド-3.0.4.jar:

マイProGuardのファイルには、次のものが含ま-libraryjars libs/osmdroid-google-3.0.4.jar -libraryjars libs/slf4j-android-1.5.8.jar -libraryjars/Applications/android-sdk-mac_x86/add-ons/addon_google_apis_google_inc_4/libs/maps。 ja

ありがとうございます!

答えて

0

クラスcom.markupartist.android.widget.ScrollingTextViewがアプリケーションにありません。ライブラリjarのいずれかにある場合、jarをプログラムjar(-injars)として指定する必要があります。これは、ライブラリjarの内容が出力jarにコピーされないためです。

+2

返信いただきありがとうございます。私は実際に問題を修正しました。マークアップパッケージは "ライブラリプロジェクト"(私のワークスペース内のプロジェクトで実際のプロジェクトをリンクしていました)ですので、私はproguard.cfgに以下を追加しなければなりませんでした:-keep public class com.markupartist.android。** { public protected *; } – kevin78925

+0

その場合、クラスScrollingTextView(およびデフォルト以外のコンストラクタかもしれません)を保持するだけで十分です。 ProGuardに関する限り、ライブラリコードは普通のプログラムコードです。すべての公共図書館のクラスとクラスメンバを保持することは、処理されたコードを汎用ライブラリとして使用する場合にのみ必要です。 –

関連する問題