8

Android Studio をバージョンに更新し1.2.1.1たため、次の問題があります。

アプリのリリース バージョン/ビルド バリアントをビルドするたびに、ライブラリ モジュールとしてプロジェクトに含めNoClassDefFoundErrorAdjust ライブラリを取得します。

ストラックトレース:

   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 サポート ライブラリの既知の問題に対する回避策です。

さらに紛らわしいのは、NoClassDefFoundErrorAndroid < を実行しているデバイスのみでのみ発生することです5.0

理由が何であるか、またはこれを修正する方法についてのアイデアはありますか?

4

1 に答える 1

0

ドキュメントには次のように記載されています。

Proguard を使用している場合は、次の行を Proguard ファイルに追加します。

-keep class com.adjust.sdk.** { *; }
-keep class com.google.android.gms.common.** { *; }
-keep class com.google.android.gms.ads.identifier.** { *; }
于 2015-06-01T16:36:18.697 に答える