いくつかの異なるライブラリを使用するアンドロイドアプリケーションをエクスポートしようとしています。ライブラリのうち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
ありがとうございます!
返信いただきありがとうございます。私は実際に問題を修正しました。マークアップパッケージは "ライブラリプロジェクト"(私のワークスペース内のプロジェクトで実際のプロジェクトをリンクしていました)ですので、私はproguard.cfgに以下を追加しなければなりませんでした:-keep public class com.markupartist.android。** { public protected *; } – kevin78925
その場合、クラスScrollingTextView(およびデフォルト以外のコンストラクタかもしれません)を保持するだけで十分です。 ProGuardに関する限り、ライブラリコードは普通のプログラムコードです。すべての公共図書館のクラスとクラスメンバを保持することは、処理されたコードを汎用ライブラリとして使用する場合にのみ必要です。 –