android - 在运行 4.3/pre L 的 Android 上找不到类/NoClassDefFound 错误

标签 android noclassdeffounderror classnotfoundexception android-4.4-kitkat android-multidex

我有一个 Android 应用程序,似乎在 Android L+ 设备上运行良好。但是,当我尝试在 L 之前的设备上运行它时,我似乎在 Could not Find Class 上遇到异常。或NoClassDefFoundError这些类似乎来 self 的项目所依赖的不同项目。

我试过java.lang.NoClassDefFoundError on Android devices with KitKatNoClassDefFoundError in 4.4 kitkat but not in 5.0 Lollipop - Could not find class ,建议我禁用 multidex在 build.gradle 中,但它没有找到问题,我开始得到 transformClasseswithDexforDebug错误列于UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define ,建议我返回multiDex返回启用状态。

这是错误的堆栈跟踪示例:

01-28 17:09:21.214 15125-15125/<app> I/dalvikvm: Could not find method <XXX>, referenced from method <YYY>.findZygotePid 01-28 17:09:21.190 15125-15125/<app> E/dalvikvm: Could not find class '<ZZZ>', referenced from method <AAA>.broadcast 01-28 17:09:21.229 15125-15125/<AAA> E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NoClassDefFoundError: <Method from a dependent project's class>

我的主 Android 项目和依赖模块都启用了 multidex,并且依赖项设置为编译 com.android.support:multidex:1.0.0 。有人可以提供一些关于如何修复 L 之前的设备上抛出的异常的信息吗?如有任何意见,我们将不胜感激。

我还尝试了项目的干净构建和重建,但这对我没有帮助。谢谢。

更新:示例代码

class Dummy { 
Dummy(<params>) {
        initialize variables;
    }

}

这被调用为 new Dummy(<params>) ,它抛出异常 NoClassDefFound package_name.Dummy

最佳答案

通过使我的基本 Activity 扩展 MultiDexApplication (而不是 Application)解决了上述问题,并且应用程序现在不会崩溃。此外,修改了 build.gradleAndroidManifest.xmlminSdkVersion 设置为 18。

关于android - 在运行 4.3/pre L 的 Android 上找不到类/NoClassDefFound 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35060966/

相关文章:

java - NoClassDefFoundError 和 ClassNotFoundException 的原因和区别是什么?

android - minSdkVersion 有什么用?

android - 删除 Activity 作为默认启动器

android - 使用 Android Studio 2.2RC 运行 Android 5.1 应用程序时出现 java.lang.NoClassDefFoundError

java - Ant 错误 "Exception in thread "AWT-EventQueue- 0"java.lang.NoClassDefFoundError: com/sun/jna/Library"

java - 使用自己创建的jar文件时出现ClassNotFoundException

java - ArrayList HashMap 未定义

Android BindingAdapter error.NonExistentClass

java.lang.NoClassDefFoundError : Failed to link org/pentaho/di/core/attributes/metastore/EmbeddedMetaStore

java - 如何解决由 : java. lang.ClassNotFoundException 引起的此错误