在 Android 运行 4.3/ pre L 上找不到 class/NoClassDefFound 错误
Could not find class/NoClassDefFound error on Android running 4.3/ pre L
我有一个 android 应用程序似乎 运行 在 Android L+ 设备上运行良好。但是,当我尝试为 L 之前的设备 运行 时,我似乎在 Could not Find Class
或 NoClassDefFoundError
上遇到异常,这些 类 似乎来自不同的项目我的项目所依赖的。
我尝试了 and , which recommended me to disable multidex
in build.gradle, but it did not find the issue and I started getting transformClasseswithDexforDebug
errors listed at ,它建议我返回 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 应用程序似乎 运行 在 Android L+ 设备上运行良好。但是,当我尝试为 L 之前的设备 运行 时,我似乎在 Could not Find Class
或 NoClassDefFoundError
上遇到异常,这些 类 似乎来自不同的项目我的项目所依赖的。
我尝试了 multidex
in build.gradle, but it did not find the issue and I started getting transformClasseswithDexforDebug
errors listed at 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。