По состоянию на январь 2015 года поддержка NDK для студии Android по-прежнему не работает.
Загадочное сообщение гласит: «Альтернатива будет предоставлена в будущем».
Я хотел бы знать, каково это направление в Google / Google, поскольку на данный момент невозможно спланировать правильный план развития.
Версия 0.7+: они предложили по-прежнему использовать ndk-build / ant
Версия 0.8+: введена минимальная поддержка NDK
Версия 1.0.0: Похоже, поддержка NDK будет официальной
Версия 1.0.2: Похоже, поддержка NDK устарела.
Мои вопросы:
Все возвращаются к ndk-build и файлам android.mk ручной работы?
Кто-нибудь использует устаревший метод на 1.0.0+ (поддержка Gradle ndk) в серьезном проекте?
В каком направлении пойдет «Альтернатива в будущем»? Возможно ли ответить на это любому инсайдеру, не нарушая каких-либо правил компании?
Изменить: это не дубликат, потому что он имел в виду эволюцию Android Studio и NDK, другой вопрос относится к очень древней версии Android Studio, как я уже говорил в своем посте, поддержка NDK резко изменилась от версии к версии без четкое направление, до сих пор с выпуском 1,3
Android Studio v1.3 Preview — мы выпускаем новую версию Android
Студия. Наиболее заметной является очень востребованная функция от нашего Android NDK
& разработчики игр: редактирование и отладка кода для кода C / C ++. На основе
JetBrains Clion, плагин Android Studio NDK обеспечивает
такие функции, как рефакторинг и завершение кода для кода C / C ++
наряду с вашим кодом Java. Поддержка Java и C / C ++ кода
в одно бесплатное приложение для Android-приложения
Разработчики. Обновление до Android Studio v1.3 через Канарский канал а также
Поделитесь с нами вашими мыслями.
Источник из блога разработчиков Android Вот.
В составе стабильной версии Android 1.3 мы включили раннюю версию
Предварительный просмотр редактора C ++ & поддержка отладчика в сочетании с
экспериментальная сборка плагина. См. Страницу предварительного просмотра Android C ++ для
информация о том, как начать. Поддержка более сложных проектов
и сборка конфигураций находится в разработке.
Цитируется из блога разработчиков Android Вот.
Добавленные функции:
Для шагов о том, как его использовать, посмотрите Вот.
Я вызываю командную строку, не уверен, откуда я это взял, это в основном ваш первый вариант, возвращаясь к ndk-build
с ручной android.mk
, Хорошо, если вы не хотите контролировать ndk abiFilters по вкусу продукта.
apply plugin: 'com.android.library'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
ndk {
moduleName "glues"}
}
sourceSets.main {
jniLibs.srcDir 'src/main/libs' //set .so files location to libs
jni.srcDirs = [] //disable automatic ndk-build call
}
task buildNative(type: Exec, description: 'Compile JNI source via NDK') {
def ndkDir = android.ndkDirectory
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source
'-j', Runtime.runtime.availableProcessors(),
'all',
'NDK_DEBUG=1'
}
task cleanNative(type: Exec, description: 'Clean JNI object files') {
def ndkDir = android.ndkDirectory
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source
'clean'
}
clean.dependsOn 'cleanNative'
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn buildNative
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
}
Я вижу эти предупреждения только при настройке abiFilter
на productFlavors
:
productFlavors {
x86 {
ndk {
abiFilter "x86"}
}
mips {
ndk {
abiFilter "mips"}
}
armv7 {
ndk {
abiFilter "armeabi-v7a"}
}
arm {
ndk {
abiFilter "armeabi"}
}
fat
}
Обратите внимание, что использовались старые версии плагинов Gradle android.plugin.ndkFolder
скорее, чем android.ndkDirectory
, Для получения дополнительной информации см .: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0
Начиная с Android Studio 1.3 будет полностью поддерживаться NDK, включая встроенную отладку.
android.useDeprecatedNdk=true
в твоих gradle.properties