Я пытаюсь использовать экспериментальный плагин Gradle для своих проектов NDK, но он не компилирует ndk. Все выглядит отлично - Android Studio понимает мой C-код, может переходить с Java на родной и так далее, но когда я запускаю «Build», шаг компиляции ndk пропускается - я не вижу таких задач, как «compileNdk».
Когда я список всех доступных задач поКомпиляция NDK с экспериментальным плагином gradle
gradlew tasks
нет TAKS как «compileNdk» тоже. Папка «Libs» также пуста, поэтому, когда я пытаюсь вызвать собственный метод, сбой приложения с «UnsatisfiedLinkError».
Итак, что мне не хватает? Как сказать градиенту скомпилировать NDK?
Моя конфигурация является:
корень 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'
}
Я использую Android Studio 1.4.1 на Windows, 7. ndk.dir указывает на папку «ndk-bundle», загруженную AS.
Любая помощь оценена!
Задачи теперь называется '' compileArmeabiDebugtest_experimentalSharedLibrarytest_experimentalMainCpp' и linkArmeabiDebugtest_experimentalSharedLibrary' и т.д. Я использую ** Gradle 0.2.0 ** –
вашего модуля построить файл выглядит файл мне. Но попробуйте удалить раздел 'android.sources {}', а затем очистите и перестройте свой проект. Дайте нам знать, что происходит. – shailenTJ
Спасибо, я выясню причину, см. Мой ответ ниже – noktigula