Android Studio をバージョンに更新し1.2.1.1
たため、次の問題があります。
アプリのリリース バージョン/ビルド バリアントをビルドするたびに、ライブラリ モジュールとしてプロジェクトに含めNoClassDefFoundError
たAdjust ライブラリを取得します。
ストラックトレース:
java.lang.NoClassDefFoundError: com.adjust.sdk.AdjustConfig
at de.myapp.GlobalApp.prepareAdjust(GlobalApp.java:111)
at de.myapp.GlobalApp.onCreate(GlobalApp.java:71)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:999)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4151)
at android.app.ActivityThread.access$1300(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
私のコードの対応する部分:
AdjustConfig config = new AdjustConfig(this, someString, otherString);
で Proguard をオフにすると minifyEnabled false;
、build.gradle
エラーはなくなりました。
私の proguard-rules.pro は次のようになります。
-keepattributes **
-keep class !android.support.v7.internal.view.menu.**,** {*;}
-dontpreverify
-dontoptimize
-dontshrink
-dontwarn **
android.support.v7.internal.view.menu
これらの Proguard ルールは、パッケージ内のクラスを難読化するという 1 つのことだけを行うため、少し奇妙に見えるかもしれません。この手順は、Samsung デバイスの Android サポート ライブラリの既知の問題に対する回避策です。
さらに紛らわしいのは、NoClassDefFoundError
Android < を実行しているデバイスのみでのみ発生することです5.0
。
理由が何であるか、またはこれを修正する方法についてのアイデアはありますか?