![](/img/trans.png)
[英]java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/core/app/ActivityManagerCompat
[英]java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/R when updating Gradle Android Plugin
我开始更新我的一个旧项目的依赖项,但随后注意到应用程序在一些 dep 更新后没有启动 - 它显示java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/work/R$bool
异常。 这可能是因为在启动时我重新安排了一个 Worker 来做一些周期性的 IO。
我将其缩小到com.android.tools.build:gradle:3.5.1
-> com.android.tools.build:gradle:3.6.1
在build.gradle
更改,这确实与文档相对应,但这并不帮助很大。
有关出现问题的当前设置的更多上下文:
我将旧的类路径和版本用于implementation "android.arch.work:work-runtime-ktx:1.0.1"
的工作库
我尝试在测试项目中重现此设置但没有成功,这可能表明这是某种缓存问题。 我尝试用rm -rf ~/.gradle/caches
删除它们,但这没有帮助
Android Studio 还在WorkManagerImpl.java
文件(来自工作库源)中显示此问题,这表明这确实不是 gradle 缓存问题
编辑 1:我尝试删除androidx:work
包使用,并且此异常是由androidx
组中的另一个支持库引发的。 这让我注意到有一些其他一些时髦的类处理正在进行。
编辑 2:我找到了解决方案,这适用于任何android.support
库 - 一个 gradle 插件realm-android
搞砸了构建,所以更新它似乎解决了这个问题。 其他代码生成插件可能会出现类似的问题。
任何有关如何处理此问题的提示将不胜感激
正如 OP 所说,它也可以是任何其他插件或依赖项。 就我而言,错误来自 ObjectBox 插件。
将 ObjectBox 从 2.5 更新到 2.6 为我解决了这个问题。
objectboxVersion = '2.6.0'
但是,我需要将以下行添加到我的 build.gradle 中,以便 ObjectBox 再次工作。
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.