Я построил несколько пробных С и С ++ программ с использованием Gradle следующего these examplesандроид студии экспериментальной NDK с библиотекой
Я также был в состоянии настройки андроида студии с экспериментальными функциями для построения андроид проекта призывающего нативные функций с помощью this answer
Я знаю, что я могу построить этот проект с помощью android.useDeprecatedNdk=true
и предоставить свой файл android.mk для андроида студии, чтобы собрать и построить приложение.
Возможно ли с помощью экспериментальной функции построить эту же программу? Этот проект построен с помощью CMAKE, и есть некоторые шаги компиляции, которые выводят файлы, которые необходимо связать. ndk-build создает эти файлы, но я не могу найти способ сделать это с помощью экспериментальных функций Android.
Я пытаюсь проверить цели и построить нетривиальный пример построения более сложного проекта. Я решил попытаться построить the zlib library.
Вот мой build.gradle
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.1"
defaultConfig.with {
applicationId = "me.test.testnative_exp"
minSdkVersion.apiLevel = 10
targetSdkVersion.apiLevel = 23
versionCode = 1
versionName = "1.0"
buildConfigFields.with {
create() {
type = "int"
name = "VALUE"
value = "1"
}
}
}
}
compileOptions.with {
sourceCompatibility=JavaVersion.VERSION_1_7
targetCompatibility=JavaVersion.VERSION_1_7
}
android.ndk {
moduleName = "hello-jni"
cppFlags += "-I${file("src/main/jni/zlib")}".toString()
stl = "stlport_static"
}
android.buildTypes {
release {
minifyEnabled = false
proguardFiles += file('proguard-rules.pro')
}
}
android.sources {
main {
java {
source {
srcDir 'src'
}
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
}
моя структура проекта
app/
build/
libs/
src/
src/main/testActivity.java
jni/zlib <- the zlib folder is the one that I downloaded from the zlib website.
jni/hello-jni.c
После синхронизации с build.gradle я получаю ошибку ссылку на заголовок в файле: infbak9.c не удалось найти #include "zutil.h"
но оба файла находятся в каталоге zlib под jni.
Можно ли использовать экспериментальную сборку ndk для студии Android для компиляции этого проекта?