NDK プロジェクトに実験的な Gradle プラグインを使用しようとしていますが、ndk をコンパイルできません。すべて問題ないように見えます - Android Studio は私の C コードを理解し、Java からネイティブなどにジャンプできますが、「ビルド」を実行すると、ndk をコンパイルするステップがスキップされます - 「compileNdk」のようなタスクは表示されません。
利用可能なすべてのタスクをリストすると
gradlew tasks
「compileNdk」のようなタスクもありません。「Libs」フォルダーも空であるため、ネイティブ メソッドを呼び出そうとすると、「UnsatisfiedLinkError」でアプリがクラッシュします。
それで、私は何が欠けていますか?NDKをコンパイルするようにgradleに指示する方法は?
私の設定は次のとおりです。
ルートbuild.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle-experimental:0.3.0-alpha5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
モジュール build.gradle:
apply plugin: 'com.android.model.application'
model
{
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.1"
defaultConfig.with {
applicationId = "com.kaspersky.experimentalcpp"
minSdkVersion.apiLevel = 14
targetSdkVersion.apiLevel = 23
versionCode = 1
versionName = "1.0"
}
}
android.buildTypes {
debug {
ndk.with {
debuggable = true
}
}
release {
minifyEnabled = false
proguardFiles += file('proguard-rules.pro')
}
}
android.sources {
main {
jni {
source {
srcDirs 'src/main/jni'
}
}
}
}
android.ndk {
moduleName = "test_experimental"
stl = "stlport_static"
cppFlags += "-Isrc/main/jni".toString()
ldLibs += ["log"]
ldLibs += ["android"]
}
android.productFlavors {
create("arm") {
ndk.abiFilters += "armeabi"
}
create("arm7") {
ndk.abiFilters += "armeabi-v7a"
}
create("fat")
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.0'
}
Windows 7 で Android Studio 1.4.1 を使用しています。ndk.dir は、AS によってダウンロードされた「ndk-bundle」フォルダーを指しています。
どんな助けでも大歓迎です!