Подтвердить что ты не робот

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

4b9b3361

Ответ 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