将 .jar 文件包含到 cordova 插件中
Posted
技术标签:
【中文标题】将 .jar 文件包含到 cordova 插件中【英文标题】:Including .jar file into cordova plugin 【发布时间】:2014-09-25 11:55:50 【问题描述】:我需要将第 3 方插件 .jar
包含到我的自定义 cordova 插件中。
我找不到任何方法来做到这一点。
f.e.我的一些实际代码看起来像这样(plugin.xml
):
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="AztecReader">
<param name="android-package" value="com.example.aztecreadermobilas.AztecReaderPlugin"/>
</feature>
</config-file>
<source-file src="src/android/AztecReaderPlugin.java" target-dir="src/com/example/aztecreadermobilas" />
</platform>
我需要包含的库:
/libs
/armeabi
/libAztecLibrary.so
/armeabi_v2
/libAzteclibraryv2.so
/AztecReader.jar
【问题讨论】:
【参考方案1】:我发现了一个可能涵盖您的用例的示例:
https://github.com/phonegap/phonegap-plugin-fast-canvas/blob/master/plugin.xml
查看第 31 行。似乎预编译的库(在本例中为 Android/libs/armeabi/libFastCanvasJNI.so)可以通过 source-file 指令包含在内。
我不知道这是否也适用于 java 类文件。您可以通过提取 jar 并将每个包含的类文件添加为源文件来完成此操作。试试看吧。
AztecReader 似乎可以作为源代码使用,因此您可以在源代码(java 文件)中直接访问您的插件。它们将在应用程序构建期间进行编译。这似乎是将阅读器集成到插件中的最简单的方法。
【讨论】:
确实如此。示例:.so .jar 文件,和 .java 文件一样,使用即可:
<source-file src="path/to/foo.so" target-dir="libs/" />
tips:yourApp/platform/android/是一个android项目目录,cordova build android之后,你就可以在Android Studio中正常调试了。无聊的是,每次修改插件代码都得删掉重新添加。
【讨论】:
【参考方案3】:将lib-file
元素添加到您的plugin.xml:
<platform name="android">
<lib-file src="AztecReader.jar" />
</platform>
见Plugin.xml reference documentation:
对于 Android,
<lib-file>
元素用于在项目的 libs 目录中安装 .jar 文件。它仅支持包含 .jar 文件的相对路径的 src 属性。
【讨论】:
以上是关于将 .jar 文件包含到 cordova 插件中的主要内容,如果未能解决你的问题,请参考以下文章
Gradle 和 Shadow 插件 - 在 shadowJar 任务之后将附加文件(.jar 文件)复制到最终 jar