我想将此Android library包含在Cordova插件中。
库本身由Gradle管理,可以在Github链接中看到。该库的开发人员只提供guide如何在Android Studio项目中使用它,但我想为这个库创建Cordova Plugin包装器,所以我想将它包含在插件中。
我的插件有以下结构:
-root
-plugin.xml
-lib
-fliclib-android (this is a cloned library from the github link)
-src
-android
-MyPlugin.java
-www
-MyPlugin.js
在plugin.xml里面我有:
...
<js-module src="www/MyPlugin.js" name="MyPlugin">
<clobbers target="MyPlugin" />
</js-module>
<!-- android -->
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
<feature name="MyPlugin">
<param name="android-package" value="com.mypackage.cordova.MyPlugin"/>
</feature>
</config-file>
<source-file src="src/android/MyPlugin.java" target-dir="src/com/mypackage/cordova" />
<framework src="lib/fliclib-android/build.gradle" custom="true" type="gradleReference" />
</platform>
...
我也尝试过:
<framework src="lib/fliclib-android/fliclib/build.gradle" custom="true" type="gradleReference" />
<framework src="lib/fliclib-android/" custom="true" />
<framework src="lib/fliclib-android/fliclib/src/main/" custom="true" />
...
我还尝试在lib/fliclib-android/fliclib/src/main
中创建自己的Gradle文件。到目前为止没有运气。当我尝试运行cordova build
进程时,我通常最终得到的是一堆错误,表明没有加载库中的类/符号。
甚至可以包含这样的项目吗?如果我可以从Github引用它也会很棒,但在文档中我没有找到这样的选项。
或者我是否必须创建aar
文件?加载那个?我没有尝试过这个选项,但我想在最后的情况下尝试一下。
谢谢!
答案 0 :(得分:2)
我采用了不同的方法。有趣的是,我开发了相同的插件,但我没有找到你的项目!
我的方法是在我的项目中添加自定义build.gradle文件。在plugin.xml中,使用framework标签指定build.gradle位置:
<!-- android -->
<platform name="android">
<framework src="src/android/build.gradle" custom="true" type="gradleReference" />
</platform>
然后,build.gradle内容如下:
repositories {
maven { url "https://jitpack.io" }
}
dependencies {
compile 'com.github.50ButtonsEach:fliclib-android:ec1cdc3fbe'
}
它使用Jitpack来获取依赖项。虽然我在构建PhoneGap Build云解决方案时仍遇到问题,但它在Cordova上工作得很好。
这是我的插件,iOS支持即将推出: