Android Studio & quot; Текущая поддержка NDK устарела & quot;

По состоянию на январь 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

25

Решение

Обновление от Google I / O 2015

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 Вот.


Новое обновление от 30.07.2015 -> Выпущена Android Studio v1.3

В составе стабильной версии Android 1.3 мы включили раннюю версию
Предварительный просмотр редактора C ++ & поддержка отладчика в сочетании с
экспериментальная сборка плагина. См. Страницу предварительного просмотра Android C ++ для
информация о том, как начать. Поддержка более сложных проектов
и сборка конфигураций находится в разработке.
введите описание изображения здесь

Цитируется из блога разработчиков Android Вот.

Добавленные функции:

  • Завершение кода
  • Навигация по коду (перейти к объявлению, перейти между заголовком и
    реализация и т. д.)
  • Быстрые исправления
  • намерения
  • Рефакторинг
  • Исходный формат
  • отладка

Для шагов о том, как его использовать, посмотрите Вот.

12

Другие решения

Я вызываю командную строку, не уверен, откуда я это взял, это в основном ваш первый вариант, возвращаясь к 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

5

Начиная с Android Studio 1.3 будет полностью поддерживаться NDK, включая встроенную отладку.

4

android.useDeprecatedNdk=true

в твоих gradle.properties

0
По вопросам рекламы [email protected]