混合来自gradle和gradle的android插件

有没有什么方法或变通办法或只是提示,从gradle和gradle-experimental一起工作来制作插件?

例如,要混合这两个版本:

com.android.tools.build:gradle:1.3.1
com.android.tools.build:gradle-experimental:0.3.0-alpha4

我有一个使用一些外部插件( app/build.gradle )的现有项目:

apply plugin: 'com.android.model.application'
apply plugin: 'com.android.databinding'
apply plugin: 'com.jakewharton.hugo'

在我的根build.gradle我有:

com.android.tools.build:gradle-experimental:0.3.0-alpha4

我拥有的问题:

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.android.databinding']
   > java.lang.NullPointerException (no error message)

要么

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.jakewharton.hugo']
   > 'android' or 'android-library' plugin required.

如果没有其他插件,我的项目工作正常(我有Android库中有一些NDK代码是从我的主项目中调用的,当我在其他插件上添加插件时会出现问题。

问题是 - 它是每个插件(hugo,databinding,apt,可能更多)的一个gradle-experimental问题或问题。

或者,也许你有任何提示,如果有任何其他方式来使用当前稳定gradle插件和库(与NDK代码)使用gradle实验的应用程序?

我想避免的是处理* .mk文件和(尽可能完整)Android Studio支持。 更大的图片是准备.aar库与NDK代码(只是简单的计算),将能够插入到现有的项目。


我已经能够通过在我的项目中使用最近的版本来混合gradle stable和-experimental android插件,而没有任何问题。

您应该能够在您的项目的build.gradle文件中定义这两个依赖关系:

dependencies {
    classpath 'com.android.tools.build:gradle-experimental:0.3.0-alpha7'
    classpath 'com.android.tools.build:gradle:1.4.0-beta6'
}

然后从各个模块的build.gradle文件中使用apply com.android.(application|library)com.android.model.(application|library)


还没有使用实验性插件,但我想,您可以将您的项目划分为2个Gradle模块,并在NDK模块中为应用程序模块和新的实验性插件使用标准Android Gradle插件。


@ ph0b是对的,我只是给出了这个答案的更新。

你将需要在你的gradle-wrapper.properties distributionUrl=https://services.gradle.org/distributions/gradle-2.14.1-all.zip

并在你的项目build.gradle

    dependencies {
    classpath 'com.android.tools.build:gradle:2.1.3'
    classpath "com.android.tools.build:gradle-experimental:0.7.3"
}
链接地址: http://www.djcxy.com/p/88555.html

上一篇: Mixing android plugins from gradle and gradle

下一篇: Cannot connect to iTunes Store error while IAP