2016-10-03 7 views
0

最近私のビルド環境をAndroidスタジオ2.2、JDK 1.8(ジャック付き)にアップグレードしました。私はgradle-2.14.1でgradleラッパーを使用しています。私のビルド/リリースの亜種は、アンドロイド版K>で正しくコンパイルして実行します。しかし、アンドロイドKデバイスでコードを実行しようとすると、コードは正しくコンパイルされ、apkが正しく生成されます。コードはBuildConfigクラスを見つけることができません。私はおそらく調べることができるポインタを感謝します。ありがとう!BuildConfig NoClassDefFoundError on Android K

FATAL EXCEPTION: main Process: com.trail.android.debug, PID: 21045 java.lang.NoClassDefFoundError: com.trail.android.BuildConfig at com.trail.android.TrailApplication.attachBaseContext(TrailApplication.java:41) at android.app.Application.attach(Application.java:181) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:511) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4317) at android.app.ActivityThread.access$1500(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method)

+0

'BuildConfig'クラスはAndroidによって自動的に生成されるはずですか、それとも悪いのですか? _Build_-> _Clean Project_-> _Rebuild Project_をやってみましたか? –

+0

ご返信ありがとうございます。私はきれいなプロジェクトを再構築しようとしましたが、私は同じエラーが発生し続けます。私はカスタムBuildConfigを書いておらず、デフォルトのものを使っています。困ったことは、セットアップがAndroid L以上で完璧に動作することです。 –

+0

最後のいくつかの推測では、正しい 'minSdkVersion'を設定しましたか?あなたはまた、ビルドツールやAndroidのgradleプラグインのバージョンを更新しようとしましたか? –

答えて

0

これは、(この作品のクラスのいくつかはとキットカットは、二次DEXに見つけることができませんでした(私の場合BuildConfig.classは二DEXにあったに)二次DEXファイルに入るhttps://code.google.com/p/android/issues/detail?id=224026

に関連していましたAndroid L以上では自動的にpre Lでmultidexサポートライブラリがこれを処理していたはずですが、私が推測するバグを打っていました)。この問題を回避するには、jackOptionsに以下を追加してください。

jackOptions { 
      enabled true 
      additionalParameters("jack.dex.output.policy" : "multidex") 
      additionalParameters("jack.preprocessor" : "true") 
      additionalParameters("jack.preprocessor.file" : "legacyMultidexInstallation.jpp") 
      additionalParameters("jack.dex.output.multidex.legacy": "true") 
     } 

この修正により、それは私のために働いた。

+0

ファイルの内容と場所はどこですか?legacyMultidexInstallation .jpp? –

関連する問題