android - NoSuchMethodError : No virtual method decrementAndGet 错误

标签 android apache-commons-lang3

某些设备上,我的应用崩溃

异常 java.lang.NoSuchMethodError:类 Lorg/apache/commons/lang3/mutable/MutableInt 中没有虚方法 decrementAndGet()I;或其父类(super class)('org.apache.commons.lang3.mutable.MutableInt' 的声明出现在/system/framework/framework.jar:classes2.dex 中)

据我所知(我可能错了),Android 设备已经有了 apache commons lang3 库。

我也将它包含在我的应用程序中(作为依赖项),但似乎实际加载到类路径中的不是我提供的那个,而是一个不存在该方法的旧版本。

有没有办法指示 gradle 强制使用我的 apk 中定义的 apache commons lang3 版本,而不是系统提供的版本?

最佳答案

From what I know (I may be wrong), Android devices already have the apache commons lang3 library

如果是,则未记录。也可能是 only certain device manufacturers are loading it in the zygote (所有 Android SDK 应用程序的进程都从该进程派生),而在其他制造商的其他设备上则不是问题。

it seems the one actually loaded on the classpath is not the one I provided but an older version where that method doesn't exist

应用程序无法覆盖 zygote 中的内容。受精卵总是赢家。

Is there a way to instruct gradle to force usage of the apache commons lang3 version defined in my apk instead of the one provided by the system?

不,对不起。我建议不要使用该库。

关于android - NoSuchMethodError : No virtual method decrementAndGet 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50411325/

相关文章:

java - 使用反射输出对象中变量的所有值

java - 为什么不推荐使用 org.apache.common.lang3 StringEscapeUtils?

android - 如何在android底部导航 View 中更改文本填充

java - 可以使用 ObjectUtils.identityToString() 检查对象 null

android - 找不到 Gradle DSL 方法 : 'packageNameSuffix()'

android - 与 PC 相比,为什么 Android 中的响应时间(对于 Rest Call)较慢?

java - 在 Java 中创建元组和元组函数的辅助方法?

java - 在字符串集合中查找相关部分

java - 当加载给定的 url 时出现错误时,如何不显示 webView?

java - 安卓TCG游戏