【问题标题】:Add a dependency to an Android Cordova plugin向 Android Cordova 插件添加依赖项
【发布时间】:2016-03-22 18:21:27
【问题描述】:

我正在构建一个 Cordova Android 插件。我想在由插件创建(特别是scissors)的Intent 中使用第三方View。 通常(在非 Cordova 项目中)我会转到我的项目的 build.gradle 文件并像这样添加它:

dependencies {
compile 'com.lyft:scissors:1.0.1' }

但似乎我的插件项目中的build.gradle 文件不应该被触及? 向插件项目添加依赖项以支持通过 Cordova 构建和通过 Android Studio 构建的正确方法是什么? 同样的问题,但针对本地项目(未托管在 GitHub 上)。

【问题讨论】:

    标签: android cordova gradle android-gradle-plugin cordova-plugins


    【解决方案1】:

    您必须使用自己的 gradle 文件,然后像这样将其链接到 plugin.xml

    <framework src="relative/path/your.gradle" custom="true" type="gradleReference" />
    

    您必须将该标签放在plugin.xml 上,因此在插件安装时它会被读取并由cordova 处理(不确定它在内部是如何工作的,但我想它会将值从您的自定义 .gradle 复制到主构建.gradle)。

    所以你不能在你当前的项目上测试它,你必须创建一个新项目并添加插件,看看它是否有效

    【讨论】:

    • 您好,感谢您的回答。你能解释一下使用你自己的gradle文件是什么意思吗?有没有办法将依赖项链接到 git 存储库(例如问题中的链接)?
    • 您使用您在问题上发布的文本创建一个新的 .gradle 文件,然后将您的 .gradle 文件链接到您的 plugin.xml 上,正如我在回答中告诉您的那样。看看人行横道插件
    • 以及如何将它添加到 Android Studio 以便我可以实际使用它?
    • 您以前创建过插件吗?阅读插件开发指南cordova.apache.org/docs/en/latest/guide/hybrid/plugins/…,尝试创建一个基本插件,一旦你开始工作,添加剪刀
    • 不,我没有。这是我正在编辑的工作插件。我很确定他们使用cordova create 生成所有文件,然后添加了一个plugin.xml 文件,就像这个(旧)教程建议devgirl.org/2013/07/17/…。这种方法的优点是我可以很容易地测试我的插件。现在,由于我的插件本身就是一个 cordova 项目,我不能只编辑它的 gradle 文件。我设法在 iOS 版本中解决了这个问题,但使用 android 似乎更复杂。希望我说的有道理...
    【解决方案2】:

    Cordova Android plugins doc(在“添加依赖库”中)指定您可以在 plugin.xml 中添加带有 &lt;framework&gt; 标记的依赖库。

    所以对于剪刀依赖,你可以使用:

    <platform name="android">
        <framework src="com.lyft:scissors:1.0.1" />
    

    【讨论】:

    • 然后呢?我需要做什么才能在 Android Studio 中使用它?运行“cordova prepare ios”似乎还不够,也不构建或清理。
    • 假设您的意思是cordova prepare android,您需要创建一个依赖于您的插件的 Cordova 应用程序以便对其进行测试。在运行 cordova prepare android 之前,您可以使用此测试应用程序中的 cordova plugin add &lt;path/to/your/plugin&gt; 添加依赖项。
    • 出于某种原因,当我用我的插件尝试这个时,它似乎偶尔会缓存这些设置。进行上述更改,然后:cordova platform rm androidcordova platform add android@5.1.1cordova plugin add myplugin
    • 它对我有用。必须检查此答案是否正确。
    • 我没有在我的根项目文件夹中看到 plugin.xml。我只在 /plugins/cordova-xxx 文件夹下看到了很多 plugin.xml。我应该手动创建 plugin.xml 文件吗?
    猜你喜欢
    • 2018-06-03
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 2015-10-01
    • 1970-01-01
    • 2015-07-22
    • 2016-10-06
    相关资源
    最近更新 更多