是否有任何方法或变通方法或只是提示从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代码。当我在其他任何插件中添加提到的插件时会出现问题。
问题是 - 它是每个插件的gradle实验问题或问题(hugo,数据绑定,apt,可能更多)。
或许你有任何提示,如果有任何其他方法可以使用当前稳定的gradle插件和库(使用NDK代码)使用gradle-experimental?
我想要避免的是处理* .mk文件和(尽可能完整)Android Studio支持。更大的图片是使用NDK代码(只是简单的计算)准备.aar库,它将能够插入现有项目。
答案 0 :(得分:4)
通过在我的项目中使用最新版本,我能够毫无问题地混合使用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)
。
答案 1 :(得分:0)
尚未使用实验性插件,但我想,您可以将项目划分为2个Gradle模块,并为NDK模块中的应用程序模块和新实验插件使用标准Android Gradle插件。
答案 2 :(得分:0)
@ 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"
}