NoSuchMethodError: Нет виртуального метода decmentAndGet - PullRequest
0 голосов
/ 18 мая 2018

На некоторых устройствах с моим приложением происходит сбой

Exception java.lang.NoSuchMethodError: No virtual method decrementAndGet()I in class Lorg/apache/commons/lang3/mutable/MutableInt; or its super classes (declaration of 'org.apache.commons.lang3.mutable.MutableInt' appears in /system/framework/framework.jar:classes2.dex)

Из того, что я знаю (я могу ошибаться), устройства Android уже имеют apache commons lang3 library.

Я также включаю его в мое приложение (как зависимость), но кажется, что фактически загруженный в classpath не тот, который я предоставил, а более старая версия, где этоМетод не существует.

Есть ли способ дать команду gradle принудительно использовать версию apache commons lang3 , определенную в моем apk, вместо версии, предоставленной системой?

1 Ответ

0 голосов
/ 18 мая 2018

Из того, что я знаю (я могу ошибаться), на устройствах Android уже есть библиотека apache commons lang3

Если это так, то она не документирована.Также возможно, что загружают его только в zygote (процесс, из которого разветвляются процессы всех приложений Android SDK), в то время как это не проблема для других устройств других производителей.

кажется, что тот, который фактически загружен в classpath, не тот, который я предоставил, а более старая версия, где этот метод не существует

Приложения не могут переопределить то, что находится взиготы.Зигота всегда побеждает.

Есть ли способ настроить gradle на принудительное использование версии apache commons lang3, определенной в моем apk, вместо версии, предоставленной системой?

Нет, извините.Я рекомендую не использовать эту библиотеку.

...