如何正确地包含一个科尔多瓦插件的外部 jar 文件?
Posted
技术标签:
【中文标题】如何正确地包含一个科尔多瓦插件的外部 jar 文件?【英文标题】:How do I properly include an external jar file for a cordova plugin? 【发布时间】:2014-10-15 18:50:24 【问题描述】:我正在尝试制作一个需要在 jar 文件中定义的类的简单 cordova android 插件。我有一个测试项目here,其中包括示例用法和我的插件的简化版本。
在我的 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 文件时,我在 Chrome 设备检查中得到“找不到类”。我假设这个找不到的类是 pebble_kit.jar 中定义的类之一。此外,它似乎没有将此文件复制到平台/android 中。
如果我可以更好地调试(找不到哪个类?),那可能是一个好的开始,如果没有人知道为什么这不起作用的实际答案。
【问题讨论】:
【参考方案1】:您的plugin.xml
是正确的。
将插件添加/安装到项目中后,请勿编辑plugin.xml
。
当你运行cordova build或prepare时,它不会处理plugin.xml的原生部分,它只会处理cordova plugin add
使用包含 jar 文件的plugin.xml
更新您的插件存储库/文件夹,并且您拥有的行是正确的。
那就做吧
cordova plugin rm
cordova plugin add
cordova build
最终结果验证了在cordova构建之后/platforms/android/libs/pebble_kit.jar
存在。
【讨论】:
可以复制它,但现在我收到各种其他“找不到符号”错误。我在此过程中的某个地方升级了 java,我认为这可能与此有关。 之前似乎缺少对 getApplicationContext() 和 JSONException 的引用。 好的,所以我更进一步,但仍然不知所措。这是我当前的插件 java & 构建结果:gist.github.com/konsumer/4bd186f06b29a45b99b1 我得到“getApplicationContext()”的“找不到符号”。我做错了什么? 我会接受这个答案。我的另一个问题是我现在需要使用 this.cordova.getActivity().getApplicationContext() 而不仅仅是 getApplicationContext()。【参考方案2】:你也可以添加一个jar文件:
<lib-file src="src/android/libs/pebble_kit.jar" />
这会将 jar 添加到 platforms/android/app/libs/
【讨论】:
以上是关于如何正确地包含一个科尔多瓦插件的外部 jar 文件?的主要内容,如果未能解决你的问题,请参考以下文章