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:
- Creación de una aplicación para Android con targetSdkVersion de 25 y minSdkVersion 19
- ¿Cómo incluir dependencias en el proyecto de gradol de la biblioteca android?
- El acceso a la tarea dex es ahora imposible, comenzando con 1.4.0
- Copiar archivos antes de resolver dependencias para crear una aplicación de Android
- Compartir una biblioteca de Android entre varias aplicaciones de Android con Gradle
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.
- Android Studio Gradle Primeros pasos
- ¿Qué comandos realiza la función `gradle-aware 'de Android Studio
- Android Studio: No se pudo encontrar: 'com.android.support:support-v4:19.1.0'
- Prueba de prueba de Espresso en CircleCI
- Cómo generar javadoc para la biblioteca de Android cuando tiene dependencias que también son bibliotecas aar?
- Android Studio - sin aplicaciones debugables
- Configuración de la firma de depuración en los sabores de producto de Gradle
- Gradle Error: Índice de cadenas fuera del rango: 0
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.
- ¿Cómo comprobar el acceso de root en android?
- Obtener la visualización de la ventana desde el servicio de Android