1

我已经为具有许多模块的应用程序实现了新的实验性构建工具(gradle-experimental:0.2.1),但是当前的 api 非常糟糕并且与某些库不兼容。

我很好奇是否可以将所有 ndk 代码拉到一个模块中,只使用实验性构建工具处理 ndk 模块,并为应用程序的其余部分使用官方构建工具。将所有令人头疼的实验性问题分离到一个小模块中会很棒。

我尝试了一些事情,但总是以 gradle 同步错误告终。在网上找不到任何关于这是否可行的信息。

4

1 回答 1

0

我的部分问题是升级到 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 一起工作。以下是使其正常工作的四个主要条件:

  1. 插件gradle-experimental:0.4.0+在您的 ndk 模块 build.gradle (也转换为新的DSL
  2. 插件gradle:1.5.0在你的项目 build.gradle
  3. Gradle 2.8(gradle:1.5.0 插件需要它)
  4. 从主项目中删除所有 jni(移至模块),因为它在 1.3.0+ 中已弃用。

如果没有这些版本的 gradle 插件的组合,我会遇到很多错误。解决这些问题有点头疼,但现在我已经将我的 ndk 头痛分离到一个简单的模块中,我可以集成诸如 crashlytics 之类的东西,这些东西在 gradle-experimental 中不能很好地发挥作用。

于 2015-11-24T00:41:27.897 回答