Android Studio "Текущая поддержка NDK устарела"
По состоянию на январь 2015 года поддержка NDK для студии Android по-прежнему непригодна.
В загадочном сообщении говорится: "Альтернатива будет предоставлена в будущем".
Я хотел бы знать, что это за gradle/google direction, потому что невозможно запланировать соответствующий план развития на данный момент.
Версия 0.7+: они предложили использовать ndk-build/ant
Версия 0.8+: они внедрили минимальную поддержку NDK
Версия 1.0.0: похоже, поддержка NDK будет официальной
Версия 1.0.2: теперь похоже, что поддержка NDK устарела.
Мои вопросы:
-
Все ли возвращаются в файлы ndk-build и hand made android.mk?
-
Кто-нибудь использует устаревший метод в версии 1.0.0+ (gradle ndk) в проекте с серьезными размерами?
-
Какое направление "Альтернатива будет предоставлено в будущем"? Возможно ли, чтобы любой инсайдер ответил, что без нарушения каких-либо правил компании?
Изменить: это не дубликат, потому что речь идет об эволюции Android Studio и NDK, другой вопрос относится к очень древней версии Android Studio, как я подробно рассказал в своем сообщении, поддержка NDK кардинально изменилась с версии до версии без четкого направления, до сих пор с выпуском 1.3
Ответы
Ответ 1
Обновление от Google I/O 2015
Android Studio v1.3 Preview - Мы выпускаем новую версию Android Студия. Самое примечательное - это очень востребованная функция от нашего Android NDKи разработчиков игр: редактирование кода и отладка для кода C/С++. Основано на Платформа JetBrains Clion, плагин для Android Studio NDK такие как рефакторинг и завершение кода для кода C/С++ наряду с вашим Java-кодом. Поддержка Java и C/С++ в один опыт разработки бесплатно для Android-приложения Разработчики. Обновить до Android Studio v1.3 через Канальный канал и сообщите нам, что вы думаете.
Источник из блога разработчиков Android здесь.
Новое обновление 30/7/2015 → Android Studio v1.3 выпущена
В рамках стабильной версии Android 1.3 мы включили ранний Доступ к просмотру редактора С++ и поддержки отладчика в паре с экспериментальный плагин сборки. См. Страницу предварительного просмотра Android С++ для информацию о том, как начать работу. Поддержка более сложных проектов и конфигурации сборки находятся в разработке. ![введите описание изображения здесь]()
Цитата из блога разработчиков Android здесь.
Добавленные функции:
- Окончание кода
- Навигация по коду (перейти к объявлению, перейти между заголовком и
реализация и т.д.)
- Быстрые исправления
- Намерения
- Рефакторинг
- Исходный формат
- Отладка
- ...
Чтобы узнать, как его использовать, посмотрите здесь.
Ответ 2
Я вызываю командную строку, не уверен, откуда я ее получил, это в основном ваш первый вариант, возвращаясь к 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
Ответ 3
NDK будет полностью поддерживаться с Android Studio 1.3, включая встроенную отладку.
Ответ 4
android.useDeprecatedNdk=true
в gradle.properties