Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova插件包括Android库(Gradle)_Android_Cordova_Android Gradle Plugin_Cordova Plugins - Fatal编程技术网

Cordova插件包括Android库(Gradle)

Cordova插件包括Android库(Gradle),android,cordova,android-gradle-plugin,cordova-plugins,Android,Cordova,Android Gradle Plugin,Cordova Plugins,我想在Cordova插件中包含这个Android 库本身由Gradle管理,从Github链接可以看出。该库的开发人员只提供如何在Android Studio项目中使用它,但我想为该库创建Cordova插件包装器,因此我想将其与插件一起使用 我的插件具有以下结构: -root -plugin.xml -lib -fliclib-android (this is a cloned library from the github link) -src -andr

我想在Cordova插件中包含这个Android

库本身由Gradle管理,从Github链接可以看出。该库的开发人员只提供如何在Android Studio项目中使用它,但我想为该库创建Cordova插件包装器,因此我想将其与插件一起使用

我的插件具有以下结构:

-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引用它,那也太好了,但是在docu中我没有找到这样的选项。 或者我必须创建一个
aar
文件吗?然后装上它?我还没有尝试过这种选择,但我只想在最后的情况下尝试


谢谢大家!

我采用了不同的方法。有趣的是,我开发了同样的插件,却没有找到你的项目

我的方法是在我的项目中添加一个自定义build.gradle文件。在plugin.xml中,使用framework标记指定build.gradle位置:

<!-- android -->
<platform name="android">
    <framework src="src/android/build.gradle" custom="true" type="gradleReference" />
</platform>
它使用Jitpack获取依赖项。它在Cordova上运行得很好,尽管我在构建PhoneGap构建云解决方案时仍然遇到困难

这是我的插件,iOS支持即将推出:


问题是,gradleReference用于指定用于构建项目的gradle引用,它们不提供从gradle添加库的gradle引用。因此,您可以从他们的库中创建一个jar并将其添加到您的项目中,或者将其添加为项目库,但在他们提供reference@jcesarmobile谢谢你的评论。我可能会使用jar或aar文件。还有一件事:有可能自己创建gradle引用吗?也许可以在库文件夹中添加某种.gradle文件?我认为您可以在maven central或jcenter上发布它,这样任何人都可以从那里获取它,但我认为这是开发人员应该做的,而不是您。谢谢你的帮助。问题是,即使是包含库的android项目也是Gradle管理的,他们将库作为一个模块放在那里,所以我不能引用它。我通过创建aar文件来解决这个问题,并将其引用到我的项目中。如果任何人在Flic库或其他方面遇到类似问题,您可以在github上查看我的解决方案:很好,一个。我从未听说过
jitpack
。很高兴我现在这么做了:)我必须感谢您使用AAR文件的方法,我终于用这种方法解决了PhoneGap构建中的问题。
repositories {
    maven { url "https://jitpack.io" }
}

dependencies {
    compile 'com.github.50ButtonsEach:fliclib-android:ec1cdc3fbe'
}