7

是否有任何方法或解决方法或只是提示使 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.

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

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

或者,如果有任何其他方法可以让应用程序具有当前稳定的 gradle 插件和使用 gradle-experimental 的库(带有 NDK 代码),也许您有任何提示?

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

4

3 回答 3

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'
}

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

于 2015-11-03T21:36:06.403 回答
0

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

于 2015-11-03T21:37:32.523 回答
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"
}
于 2016-10-25T07:32:53.363 回答