我有一个最近升级到Gradle构建系统的Android应用程序,例如使用更新版本的构建工具等。
我的targetSdkVersion是19,所以我应该选择Android 4.4及更高版本。当我使用5.0+设备运行时,一切都很好;但是Android 4.4总是因某种java.lang.NoClassDefFoundError
错误而崩溃。
作为一个测试,我删除了它抱怨失踪的原始类只是为了让它在指向另一个类时崩溃。
它崩溃的第一个类是第三方库中的内部私有类。删除该库后,它指向应用程序本身的内部私有类。
总结:
java.lang.NoClassDefFoundError
崩溃。 这是我的android.manifest文件:https://gist.github.com/rscott78/19dd88ccde66172d9332
答案 0 :(得分:25)
对于它的价值,当您启用multi-dex支持而不在Application类中添加正确的代码时,可能会发生这种情况。
创建一个类,让它从Application继承,然后添加此覆盖:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
在AndroidManifest中,为您的应用标记添加name
属性:
<application name=".MyApplication"