我有一个最近升级到 Gradle 构建系统的 Android 应用程序,例如使用更新版本的构建工具等。
我的 targetSdkVersion 是 19,所以我应该可以继续使用 Android 4.4 及更高版本。当我使用 5.0+ 设备运行时,一切都很好;然而,Android 4.4 总是崩溃并显示 java.lang.NoClassDefFoundError
某种错误。
作为测试,我删除了它提示丢失的原始类,只是让它在指向不同的类时崩溃。
它崩溃的第一个类是 3rd 方库中的内部私有(private)类。删除该库后,它指向应用程序本身的内部私有(private)类。
总之:
java.lang.NoClassDefFoundError
一起崩溃在任何低于 5.0 的情况下。 这是我的 android.manifest 文件:https://gist.github.com/rscott78/19dd88ccde66172d9332
最佳答案
值得一提的是,当您启用多 dex 支持而不在 Application 类中添加正确的代码时,可能会发生这种情况。
创建一个类,让它从 Application 继承,然后添加这个覆盖:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
在您的 AndroidManifest 中,添加
name
属性到您的应用程序标签:<application name=".MyApplication"
关于android-studio - Android 4.4 或更低版本上的 java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32576482/