Problema de migración de desarrollo nativo de Android Studio 2.2

Antes de hacer el cambio a AS 2.2, tengo la siguiente estructura para implementar mi C

app/src/main/jni/Android.mk app/src/main/jni/Application.mk app/src/main/jni/headers/* app/src/main/jni/cfiles*.cc 

En cuyo caso todo bien. Sin embargo, después de actualizar a AS 2.2, no puedo construir ningún apk y siempre recibo el siguiente error:

Execution failed for task':app:transformNative_libsWithStripDebugSymbolForDebug java.lang.NullPointerException (no error message)

¿Alguien sabe a que se debe esto? No puedo encontrar un trabajo alrededor.

He resuelto este problema en mi proyecto) tratar de añadir esto en su build.gradle (módulo)

  externalNativeBuild { ndkBuild { path 'src/main/jni/Application.mk' } } 

Vincular Gradle a su biblioteca nativa

He actualizado a AS 2.2 esta mañana y tuvo el mismo error. Actualizar el NDK lo resolvió para mí. Puede actualizar a través de SDK Manager ahora, las instrucciones están aquí:

https://developer.android.com/studio/projects/add-native-code.html#download-ndk

También asegúrese de que su archivo "local.properties" esté apuntando a la ubicación correcta de NDK. Ejemplo Windows local.properties:

 ndk.dir=C\:\\Users\\Me\\AppData\\Local\\Android\\sdk\\ndk-bundle sdk.dir=C\:\\Users\\Me\\AppData\\Local\\Android\\sdk 

Esto parece ser un error con la versión 2.2.0 y superior de las herramientas de compilación androide de gradle. Causándome problemas en nuestro entorno de CI.

¡Por favor protagonice el error abajo!

https://code.google.com/p/android/issues/detail?id=223162

Por ahora estamos volviendo a una versión antigua de las herramientas a 2.1.3

Tuvimos el mismo error hoy, en un proyecto de Rajawali , es decir, no implementamos componentes nativos pero usamos una biblioteca que implementa algunos componentes nativos de OpenGL. Supongo que esto está vinculado de alguna manera a una actualización de Android Studio (en esa máquina, era 2.2.3 ), pero no puedo decir claramente en este momento. Simplemente "de repente dejó de funcionar".

Sin embargo, necesitábamos actualizar a las herramientas experimentales de compilación de Android y aplicar la corrección de Mike anterior para que funcione. Una guía de migración (algo anticuada) se puede encontrar aquí . Para referencia, necesitamos ajustar sólo build.gradle y app/build.gradle , que ahora se ven como sigue:

 // build.gradle buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle-experimental:0.8.3' // used to be: 'com.android.tools.build:gradle:2.2.2' } } allprojects { repositories { mavenLocal() jcenter() } } 

…y

 //app/build.gradle apply plugin: 'com.android.model.application' // used to be 'com.android.application' // android() migrated according to guide // note that buildConfigFields() is missing, because it lead to errors model { android { compileSdkVersion 19 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.projecttango.experiments.augmentedrealitysample" minSdkVersion.apiLevel 19 targetSdkVersion.apiLevel 19 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles.add(file("proguard-rules.pro")) } } productFlavors { create("flavor1") { applicationId "com.app" } } sources { main { java { source { srcDir "src" } } } } // Fix suggested by Mike above ndk { platformVersion 21 } } } // Remaining Rajawali "noise" def external_lib_prefix = null if (project.hasProperty("Tango.catkin_devel_prefix")) { external_lib_prefix = project.property("Tango.catkin_devel_prefix") } else { // Building in standalone sample form. external_lib_prefix = "../../TangoReleaseLibs" } repositories { flatDir { dirs external_lib_prefix + '/aar' } } dependencies { compile fileTree(dir: external_lib_prefix + '/jar', include: ['**/*.jar']) compile (name: 'tango_support_java_lib', ext: 'aar') compile 'org.rajawali3d:rajawali:1.1.668@aar' } 

Una vez que haya terminado, asegúrese de sincronizar el proyecto Gradle en Android Studio. De lo contrario, cuando intente ejecutar de inmediato, verá algo similar a la Task 'generateDebugSources' not found in project ':app' .

Me sentí como muchas de estas soluciones eran excesivas. Lo siento por responder a mi propia pregunta, pero la solución real se tomó de casi todos los puestos aquí!

Al igual que lo que @GregT dijo, lo que funcionó para mí fue la actualización del paquete NDK que había instalado. Y, al hacerlo, realmente modificó los archivos *.mk , como la respuesta de @ Matthew_Bondarchuk.

En consecuencia, como @ aaronvargas dijo, esto es un error; Específicamente, el sistema Android NDK no se actualizó junto con las actualizaciones que Android Studio 2.2 instanció. Esto provoca una incompatibilidad con las herramientas de compilación de Android, al igual que @Michael_Jess dijo.

He intentado varios ajustes, el que arregló el problema para mí fue el cambio de la plataformaVersion desde el "19" que se estableció, a "21" en el modelo {android {ndk sección de la aplicación de build.gradle. Esto sólo será relevante en la versión Experimental. Estoy construyendo con compileSdkVersion establecido en 24 y buildToolsVersion en 24.0.2.

Actualice su configuración de build.gralde en app-module:

 compileSdkVersion 23 buildToolsVersion "24.0.2" 

Aquí está mi configuración de compileSdkVersion y buildToolsVersion que hace efecto a mí, que usted necesita para actualizar su configuración de compileSdkVersion y buildToolsVersion a la más coinciden con su gradle-plugin version .

En una palabra, una vez que actualices tu gradle-plugin version , también deberías actualizar tu configuración en build.gradle para asegurarte de que puedes obtener un resultado correcto.

  • ¿Cuál es la diferencia entre "minifyEnabled" y "useProguard" en el complemento de Android para Gradle?
  • Depuración de archivos de compilación de Gradle en Intellij / Android Studio
  • Builg.gradle: cómo ejecutar código sólo en el sabor seleccionado
  • ¿Cómo emular a los productFlavors de Android en un módulo de Java gradle puro?
  • Configuración de Robolectric, Android Studio y Gradle para tomar una aplicación de prueba
  • La creación y ejecución de aplicaciones a través de Gradle y Android Studio es más lenta que a través de Eclipse
  • No se pudo notificar al oyente de evaluación del proyecto en Android gradle
  • Error de escaneo de compilación de Gradle: El receptor de eventos está cerrado
  • Signature globalConfig para la construcción de varios proyectos
  • Las firmas de división son inconsistentes con la ejecución predeterminada de estudio de Android
  • Actualización de Gradle a Android Studio 3.0 Beta 1
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.