Android Studio " El soporte NDK actual está obsoleto"


A partir de enero de 2015, el soporte de NDK para Android Studio sigue siendo inutilizable. Un mensaje críptico dice: "Se proporcionará alternativa en el futuro."

Me gustaría saber cuál es la dirección de gradle/google en esto, ya que es imposible planificar un plan de desarrollo adecuado en este momento.

Versión 0.7+: Sugirieron seguir usando ndk-build / ant Versión 0.8+: Han introducido un soporte mínimo de NDK Versión 1.0.0: Parecía que el soporte de NDK iba a ser oficial Versión 1.0.2: It ahora parece que el soporte NDK está en desuso.

Mis preguntas son:

  • Es todo el mundo volviendo a ndk-construir y hecho a mano android.mk ¿archivos?

  • ¿Alguien está usando el método actualmente obsoleto en 1.0.0+ (soporte gradle ndk) en un proyecto de tamaño serio?

  • ¿En qué dirección iría la "Alternativa que se proporcionará en el futuro"? Es posible que cualquier insider responda eso sin romper ninguna empresa reglas?

Editar: no es un duplicado porque se refería a la evolución de Android Studio y NDK, la otra pregunta se refiere a una versión muy antigua de Android Studio como he detallado en mi post el soporte NDK ha cambiado drásticamente de versión a versión sin una dirección clara, hasta ahora con el lanzamiento de 1.3

Author: Dado, 2015-01-27

4 answers

Actualización de Google I/O 2015

Android Studio v1. 3 Vista previa - Estamos lanzando una nueva versión de Android Estudio. Lo más notable es una característica muy solicitada de nuestro Android NDK desarrolladores de & juegos: edición y depuración de código para código C/C++ . Basado en JetBrains Clion plataforma, el Android Studio NDK plugin proporciona características como refactorización y finalización de código para código C / C++ junto con su código Java. El soporte de código Java y C/C++ es integrado into one experiencia de desarrollo gratuita para la aplicación Android desarrollador. Actualizar a Android Studio v1. 3 a través del Canary channel y háganos saber lo que piensa.

Fuente del blog de desarrolladores de Android aquí.


Nueva actualización 30/7/2015 - > Android Studio v1.3 Lanzado

Como parte de la versión estable de Android 1.3, incluimos una versión temprana Acceder a la vista previa del editor y depurador de C++ compatible plugin de compilación experimental. Ver la página de vista previa de Android C++ para información sobre cómo empezar. Apoyo a proyectos más complejos y construir configuraciones está en desarrollo. introduzca la descripción de la imagen aquí

Citado del blog de desarrolladores de Android aquí.

Características Añadidas:

  • Finalización del código
  • Navegación de código (ir a declaración, saltar entre encabezado y aplicación, etc.)
  • Rápido correcciones
  • Intenciones
  • Refactorización
  • Formato de fuente
  • Depuración
  • ...

Para pasos sobre cómo usarlo, mira aquí.

 12
Author: Ahmed Hegazy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-09 11:34:49

Invoco la línea de comandos, no estoy seguro de dónde obtuve esto, es básicamente tu primera opción, volviendo a ndk-build con hand made android.mk. Está bien si no quieres controlar los abifiltros ndk por el sabor del producto.

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 {
}

Solo veo esas advertencias si configuro {[4] } en el productFlavors:

productFlavors {
    x86 {
        ndk {
            abiFilter "x86"
        }
    }
    mips {
        ndk {
            abiFilter "mips"
        }
    }
    armv7 {
        ndk {
            abiFilter "armeabi-v7a"
        }
    }
    arm {
        ndk {
            abiFilter "armeabi"
        }
    }
    fat
}

Tenga en cuenta que las versiones anteriores de los complementos de gradle usaban android.plugin.ndkFolder en lugar de android.ndkDirectory. Para más información, ver: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0

 5
Author: weston,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-16 17:49:05

NDK será totalmente compatible desde Android Studio 1.3, incluida la depuración nativa.

 4
Author: NoAngel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-29 03:31:39
android.useDeprecatedNdk=true

En tu gradle.propiedades

 0
Author: xrealm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-04 05:58:11