it-roy-ru.com

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

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

Обновление от 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++ для информация о том, как начать. Поддержка более сложных проектов и сборка конфигураций находится в разработке .  enter image description here

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

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

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

Чтобы узнать, как его использовать, смотрите здесь .

12
Ahmed Hegazy

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

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

4
NoAngel
Android.useDeprecatedNdk=true

в твоих gradle.properties

0
xrealm