Как правильно включить внешний файл jar для плагина cordova?
Я пытаюсь создать простой плагин corova android, который требует классов, определенных в файле jar. У меня есть тестовый проект здесь, который включает пример использования и упрощенную версию моего плагина.
В моем plugin.xml у меня есть это:
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="Pebble">
<param name="android-package" value="com.jetboystudio.pebble.PebblePGPlugin"/>
</feature>
</config-file>
<source-file src="src/android/PebblePGPlugin.java" target-dir="src/com/jetboystudio/pebble" />
<source-file src="src/android/libs/pebble_kit.jar" target-dir="libs" />
</platform>
В моем тестовом проекте у меня есть pebblekit jar на месте, где это должно быть (я думаю): plugins/com.jetboystudio.pebble.PebblePGPlugin/src/android/libs/pebble_kit.jar
Когда я создаю "cordova build", я не получаю ошибок, но когда я устанавливаю apk файл, я получаю "Class not found" в проверке устройства Chrome. Я предполагаю, что этот класс, который он не может найти, является одним из классов, определенных в pebble_kit.jar. Кроме того, он, похоже, не копирует этот файл в платформы /android.
Если бы я мог просто отлаживать лучше (какой класс не найден?), который может быть хорошим началом, если у кого-то нет реального ответа, почему это не работает.
Ответы
Ответ 1
Ваш plugin.xml
правильный.
Не редактируйте plugin.xml
после того, как вы добавили/установили плагин в проект.
Когда вы запустите кордову, заготовьте или подготовьте, она не обработает родные части plugin.xml, она только получит процесс на плагин cordova add
Обновите репозиторий/папку плагинов с помощью plugin.xml
, содержащего файл jar, и строка, которая у вас есть, верна.
Тогда do
cordova plugin rm
cordova plugin add
cordova build
Конечный результат подтверждает, что /platforms/android/libs/pebble_kit.jar
присутствует после сборки кордовы.
Ответ 2
Вы также можете добавить файл JAR с:
<lib-file src="src/android/libs/pebble_kit.jar" />
Это добавит банку к platforms/android/app/libs/