私は、このようなモデルブロックでgradleファイルを使用する実験的な(v:0.4.0)アンドロイドモジュールを持っています:
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 を組み合わせたモジュールをインポートする方法がありません。