我有一个 Android 应用程序,似乎在 Android L+ 设备上运行良好。但是,当我尝试在 L 之前的设备上运行它时,我似乎在 Could not Find Class
上遇到异常。或NoClassDefFoundError
这些类似乎来 self 的项目所依赖的不同项目。
我试过java.lang.NoClassDefFoundError on Android devices with KitKat和 NoClassDefFoundError 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.gradle
和 AndroidManifest.xml
将 minSdkVersion
设置为 18。
关于android - 在运行 4.3/pre L 的 Android 上找不到类/NoClassDefFound 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35060966/