【问题标题】:Use different gradle build tools in Android Studio module在 Android Studio 模块中使用不同的 gradle 构建工具
【发布时间】:2015-11-23 13:38:12
【问题描述】:
我已经为具有许多模块的应用程序实现了新的实验性构建工具 (gradle-experimental:0.2.1),但是当前的 api 非常糟糕并且与某些库不兼容。
我很好奇是否可以将所有 ndk 代码提取到一个模块中,并且只使用实验性构建工具处理 ndk 模块,并为应用程序的其余部分使用官方构建工具。将所有令人头疼的实验性问题分成一个小模块会很棒。
我尝试了一些方法,但总是以 gradle 同步错误告终。在网上找不到任何关于这是否可行的信息。
【问题讨论】:
标签:
android-studio
gradle
gradle-experimental
【解决方案1】:
我的部分问题是升级到 AS 2.0 时出现的问题。解决了这个问题后,我可以使用 Hello World 模板项目进行快速测试。我添加了一个模块并对其进行了修改以使用实验性插件。
build.gradle(ndk 模块)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle-experimental:0.4.0"
}
}
dependencies {
repositories {
jcenter()
}
}
apply plugin: 'com.android.model.library'
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.2"
defaultConfig.with {
minSdkVersion.apiLevel = 11
targetSdkVersion.apiLevel = 22
versionCode = 1
versionName = "1"
}
}
}
摘要更新
我设法让它在一个更复杂的项目中与 ndk 一起工作。
以下是使其工作的四个主要必要条件:
- 插件 gradle-experimental:0.4.0+ 在您的 ndk 模块 build.gradle 中(也转换为新的 DSL)
- 插件 gradle:1.5.0 在您的项目 build.gradle
- Gradle 2.8(gradle:1.5.0 插件需要它)
- 从主项目中删除所有 jni(移至模块),因为它在 1.3.0+ 中已弃用。
如果没有这些版本的 gradle 插件的组合,我会遇到很多错误。解决问题有点头疼,但现在我已经将我的 ndk 头痛分离到一个简单的模块中,并且我可以集成一些不能很好地与 gradle-experimental 配合使用的东西,例如 crashlytics。