如何正确地为cordova插件包含外部jar文件?



我想做一个简单的cordova 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构建"时,我没有得到任何错误,但是当我安装apk文件时,我在Chrome设备检查中得到"类未找到"。我假设它找不到的这个类是在pebble_kit.jar中定义的类之一。此外,它似乎没有将此文件复制到platforms/android.

如果我能更好地调试(没有找到哪个类?),这可能是一个好的开始,如果没有人知道为什么这不起作用的实际答案。

您的plugin.xml是正确的。

在项目中添加/安装插件后,不要编辑plugin.xml
当你运行cordova build或prepare时,它不会处理plugin.xml的本地部分,它只会得到cordova plugin add

上的进程。

更新你的插件repo/文件夹与plugin.xml包含jar文件,你有一行是正确的。

cordova plugin rm
cordova plugin add
cordova build

最终结果验证/platforms/android/libs/pebble_kit.jar在cordova构建后存在。

您还可以添加一个jar文件:

<lib-file src="src/android/libs/pebble_kit.jar" />

这将把jar添加到platforms/android/app/libs/

最新更新