如何使用自定义Android.mk与新的gradle构建系统

zel*_*lla 2 android-ndk android-gradle-plugin ndk-build

我知道如何使用Android.mk旧gradle 定制:

    sourceSets.main {
        jniLibs.srcDir 'src/main/jni'
        jni.srcDirs = [] //disable automatic ndk-build call
    }

    // call regular ndk-build(.cmd) script from app directory
    task ndkBuild(type: Exec) {
        commandLine '/.../android-ndk-r10e/ndk-build', '-C', file('src/main').absolutePath
    }

    tasks.withType(JavaCompile) {
        compileTask -> compileTask.dependsOn ndkBuild
    }
Run Code Online (Sandbox Code Playgroud)

它没有使用新的gradle com.android.tools.build:gradle-experimental:0.2.0::

Error:Cause: com.android.build.gradle.managed.AndroidConfig_Impl
Run Code Online (Sandbox Code Playgroud)

ph0*_*h0b 5

使用新的gradle-experimental插件,您的配置将是:

model {
    //...
    android.sources{
        main.jni {
            source {
                srcDirs = ['src/main/none']
            }
        }
        main.jniLibs {
            source {
                srcDirs = ['src/main/libs']
            }
        }
    }
    //...
}

// call regular ndk-build(.cmd) script from app directory
task ndkBuild(type: Exec) {
    commandLine '/.../android-ndk-r10e/ndk-build', '-C', file('src/main').absolutePath
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkBuild
}
Run Code Online (Sandbox Code Playgroud)

请注意,gradle-experimental插件的版本0.3.0-alpha7已经完成.

  • 我不认为有人知道如何用gradle-experimental 0.6.0-alpha5做到这一点?尝试设置源dirs会给出错误"尝试读取只写视图...". (2认同)