2012-02-10 1 views
0

Я добавил внешнюю библиотеку (ksoap2) в свой проект Android.Android: на некоторых устройствах я получаю NoSuchMethodError при вызове метода связанной библиотеки

На большинстве устройств он работает нормально (Android 2.3). Но на других (также Android 2.3) я получаю

java.lang.NoSuchMethodError: org.ksoap2.serialization.SoapObject.getPropertyAsString 

В чем причина такой ошибки?

ответ

1
1) There might be mulitple jars (native libraries) with same code, which may cause wrong class get loaded. 

2) Incompatable version of jar, the jar you have in classpath might be older version/newer version. 

Я сильно подозреваю в вашем случае это первый. Я думаю, у вас есть две версии родных библиотек на устройствах, где она не работает.

+0

Не следует ли встраивать в библиотеку APK .jar приоритет? – Evgenyt

+0

Не гарантируется. Зависит от загрузчика классов. – kosa

+0

Можно ли это сработать каким-то образом? Подобно установке точной версии для зависимостей (я разработчик .NET, btw). – Evgenyt

0

Возможно, реализация Java на Java не содержит банки, от которых зависит библиотека ksoap. Помните, что Android-устройства не поддерживают полный Java SE, хотя он поддерживает большинство из них.

Редактировать: Ой, я просто понял, что «нет такой ошибки метода» была в пакете Soap, поэтому мое объяснение не содержит воды. :-)

 Смежные вопросы

  • Нет связанных вопросов^_^