混合来自 gradle 和 gradle 的 android 插件-实验性
Mixing android plugins from gradle and gradle-experimental
是否有任何方法或解决方法或只是提示使来自 gradle 和 gradle 的插件一起工作?
例如混合这两个版本:
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 库(只是简单的计算),这将能够插入现有项目。
我已经能够混合使用 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 模块,并使用标准 Android Gradle 插件作为应用程序模块和新的NDK 模块中的实验性插件。
@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"
}
是否有任何方法或解决方法或只是提示使来自 gradle 和 gradle 的插件一起工作?
例如混合这两个版本:
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 库(只是简单的计算),这将能够插入现有项目。
我已经能够混合使用 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 模块,并使用标准 Android Gradle 插件作为应用程序模块和新的NDK 模块中的实验性插件。
@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"
}