Общая библиотека Android, которая не основана на JNI - PullRequest
4 голосов
/ 22 апреля 2010

Я занимаюсь разработкой библиотеки для приложений Android, которая не использует собственный код (JNI). Я пытался заменить библиотеку в качестве внешнего jar в моих проектах Android, но этот метод не включает содержимое библиотеки в apk и, таким образом, выдает ошибки класса not found при запуске в эмуляторе или устройстве. Я также попытался создать библиотеку как проект Android сам по себе, и это работает, но только для открытых статических свойств (не методов). Поскольку библиотека и приложение находятся в отдельных файлах apk, я вижу, что виртуальная машина замечает ссылки на библиотеку и может читать некоторые свойства, но когда выполняется попытка создания экземпляра класса в библиотеке, я получаю класс, который не найден, хотя я могу прочитать публичные статические свойства от этого (очень расстраивают !!).

Я понимаю, что байт-код Davlik не совпадает с байт-кодом Java, но у меня возникают проблемы даже с поиском хорошей информации о том, как решить то, что в Android кажется очень простым вопросом. Я сейчас изучаю старые материалы PlatformLibrary, но я не уверен, что это будет работать, так как образец был удален с сайта Android: (

Так что помогите мне, если сможете, если я найду ответ до того, как это произойдет, я поделюсь им.

viva la Android!

1 Ответ

4 голосов
/ 22 апреля 2010

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

Поместите JAR в каталог libs/, и он автоматически будет включен в APK.

Этот пример проекта из одной из моих книг показывает использование JAR BeanShell таким образом. Кроме того, все репозитории GitHub, начинающиеся с "cwac-" на моей странице GitHub , являются проектами, предназначенными для создания JAR-файлов, которые будут включены в проекты Android через каталог libs/.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...