Как использовать классы из rt.jar в приложении для Android?

Я создаю приложение для Android, которое ссылается на внешнюю библиотеку. Проблема в том, что библиотека использует java.beans.PropertyDescriptor, и это вызывает исключение Dalvik во время выполнения.

Как я могу решить эту проблему ? Я нашел на другом форуме, что можно манипулировать байт-кодом для загрузки классов, неизвестных из Dalvik.

Какие-либо предложения ?

Спасибо


person JavaDev    schedule 21.01.2013    source источник


Ответы (1)


Как я могу решить эту проблему ?

Загрузите исходный код во внешнюю библиотеку и перепишите его, чтобы избежать java.beans.PropertyDescriptor.

Например, вы можете:

  • Найдите копию исходного кода реализации java.beans.PropertyDescriptor где-нибудь, например, в Apache Harmony.
  • Рефакторинг java.beans.PropertyDescriptor в some.other.package.PropertyDescriptor
  • Добавьте some.other.package.PropertyDescriptor в свой проект
  • Измените исходный код внешней библиотеки, чтобы использовать some.other.package.PropertyDescriptor

Имейте в виду, что с этой библиотекой может быть много других проблем, которые, очевидно, были написаны не для Android.

Я нашел на другом форуме, что можно манипулировать байт-кодом для загрузки классов, неизвестных из Dalvik.

Так как на Android устройствах нет java.beans.PropertyDescriptor, то это вам не поможет.

person CommonsWare    schedule 21.01.2013