1

我有实验性(v:0.4.0)android模块,它使用带有模型块的gradle文件,如下所示:

apply plugin: 'com.android.mode.application'

model {
android {
    compileSdkVersion = 21
    buildToolsVersion = "21.1.2"

    defaultConfig.with {
        applicationId = "com.example.native_libs"
        minSdkVersion.apiLevel = 10
        targetSdkVersion.apiLevel = 21
    }
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
    }
}

compileOptions.with {
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}

/*
 * native build settings
 */
android.ndk {
    moduleName = "native_libs"
    stl = "stlport_static"
    cppFlags.add("-fexceptions")
    cppFlags.add("-fno-rtti")
    cppFlags.add("-std=gnu++11")
    ldLibs.add("z")
    /*
     * Other ndk flags configurable here are
     * cppFlags.add("-fno-rtti")
     * cppFlags.add("-fno-exceptions")
     * ldLibs.addAll(["android", "log"])
     * stl       = "system"
     */
}
android.buildTypes {
    debug {
        ndk.with {
            debuggable = true
        }
    }
    release {
        minifyEnabled = false
        proguardFiles.add(file('proguard-rules.txt'))
    }
}

android.productFlavors {
    // for detailed abiFilter descriptions, refer to "Supported ABIs" @
    // https://developer.android.com/ndk/guides/abis.html#sa
    create("arm") {
        ndk.abiFilters.add("armeabi")
    }
    create("arm7") {
        ndk.abiFilters.add("armeabi-v7a")
    }
    create("arm8") {
        ndk.abiFilters.add("arm64-v8a")
    }
    create("x86") {
        ndk.abiFilters.add("x86")
    }
    create("x86-64") {
        ndk.abiFilters.add("x86_64")
    }
    create("mips") {
        ndk.abiFilters.add("mips")
    }
    create("mips-64") {
        ndk.abiFilters.add("mips64")
    }
    // To include all cpu architectures, leaves abiFilters empty
    create("all")
}}

现在像另一个模块一样,我们不能在这个模块中导入使用实验插件的 java 包装类。

我更改适用plugin: 'com.android.mode.application'apply plugin: 'com.android.mode.library'但没有任何更改,仍然无法识别 native_libs 模块中的 java 包装类:(

如何为原生模块库配置 gradle?为什么实验性插件不让导入模块,就像其他模块的正常方式一样?

[编辑]

我读了这个文档 http://tools.android.com/tech-docs/new-build-system/gradle-experimental 但是没有办法导入结合了原生(c/c++)和java的模块。

4

1 回答 1

0

我在 github 中找到了一个项目,它完成了我想做的事情:)

https://github.com/frogermcs/FlatBuffs

于 2016-01-06T14:23:16.803 回答