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

时间:2016-01-28 12:02:17

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

我有一个Android应用程序似乎在Android L +设备上正常运行。但是,当我尝试为pre L设备运行它时,我似乎在Could not Find ClassNoClassDefFoundError上得到了一个例外,这些类似乎来自我的项目依赖的不同项目。

我尝试了java.lang.NoClassDefFoundError on Android devices with KitKatNoClassDefFoundError in 4.4 kitkat but not in 5.0 Lollipop - Could not find class,建议我在build.gradle中禁用multidex,但它没有找到问题我开始收到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

的异常

1 个答案:

答案 0 :(得分:3)

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