【发布时间】:2016-10-03 23:07:57
【问题描述】:
我最近将我的构建环境升级到了 Android studio 2.2、JDK 1.8(带 jack),并且我正在使用带有 gradle-2.14.1 的 gradle wrapper。我的构建/发布变体可以在任何 android 版本 > K 上正确编译和运行。但是,当我尝试在 android K 设备上运行代码时,代码编译正常并且 apk 生成正确,但代码立即崩溃,堆栈跟踪如下代码似乎找不到 BuildConfig 类。将不胜感激任何我可以调查的指针。谢谢!
致命异常:主要 进程:com.trail.android.debug,PID:21045 java.lang.NoClassDefFoundError: com.trail.android.BuildConfig 在 com.trail.android.TrailApplication.attachBaseContext(TrailApplication.java:41) 在 android.app.Application.attach(Application.java:181) 在 android.app.Instrumentation.newApplication(Instrumentation.java:991) 在 android.app.Instrumentation.newApplication(Instrumentation.java:975) 在 android.app.LoadedApk.makeApplication(LoadedApk.java:511) 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:4317) 在 android.app.ActivityThread.access$1500(ActivityThread.java:135) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.ActivityThread.main(ActivityThread.java:5017) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 在 dalvik.system.NativeStart.main(Native Method)
【问题讨论】:
-
BuildConfig类应该由 Android 自动生成.. 还是你自己创建的(这很糟糕)?您是否尝试过 Build -> Clean Project -> Rebuild Project? -
感谢您的回复。我尝试了一个干净的项目-> 重建,但我继续得到同样的错误。我没有编写任何自定义 BuildConfig 并使用默认生成的。令人费解的是,该设置在 android L 及以上版本上运行良好..
-
最后几个猜测,
minSdkVersion设置对了吗?您是否也尝试过更新构建工具或 Android gradle 插件版本? -
是的,我在 build.gradle 中设置了 minSdkVersion 19。构建工具版本是 24.0.2(compileSDK 24),我正在使用插件:'com.android.application'
-
经过大量调查,看起来我在打:code.google.com/p/android/issues/detail?id=224026。该类恰好位于辅助 dex 文件中,而在 android K 上,我们必须使用旧的 multidex。再加上 Jack,我们遇到了上述错误。
标签: android android-studio gradle