No hay ningún campo sdkHandler en LibraryPlugin después de actualizar para construir las herramientas 2.3.0

Yo estaba usando el método this para obtener el directorio NDK:

project.plugins.findPlugin('com.android.library').sdkHandler.getNdkFolder() 

Ater la actualización com.android.tools.build:gradle a 2.3 el campo sdkHandler parece haber sido renombrado en eliminado

Error: No hay propiedad: sdkHandler para class: com.android.build.gradle.LibraryPlugin

¿Existe una manera alternativa de obtener la ruta del directorio NDK en un módulo de biblioteca?

Este método devolverá ahora la ruta completa del NDK:

 project.android.ndkDirectory.absolutePath 

Para mí la solución era simplemente establecer la variable de entorno ANDROID_NDK . Más aquí .

He hecho algo de excavación. Parece que el campo sigue ahí pero marcado como privado.

Una solución sería usar la reflexión.

El campo está en com.android.build.gradle.BasePlugin del que com.android.build.gradle.LibraryPlugin hereda.

 LibraryPlugin plugin = project.plugins.findPlugin('com.android.library') Class<?> clazz = plugin.getClass().getSuperclass(); Field field = clazz.getDeclaredField('sdkHandler') field.setAccessible(true) SdkHandler sdkHandler = field.get(plugin) System.out.println("Ndk location: " + sdkHandler.getNdkFolder()) 

Para ser honesto no me gusta esta solución. Espero encontrar uno mejor.

Basta con degradar su versión gradle a 2.2.3. Resolverá el problema

  • Tipo 'EGL_DEFAULT_DISPLAY' no se pudo resolver el error mientras que la constante está claramente definida
  • Android Studio & NDK: Tengo un error cuando "javah -d jni -classpath ..."
  • Cómo determinar el código C se compila para Android / NDK o iOS
  • ¿Es el cambio de contexto utilizando un tiempo significativo?
  • CLI en DalvikVM falla en JNI lib
  • Android Native - ¿Cuándo utilizar NDK de 64 bits?
  • ¿Alguna posibilidad de reducir el tiempo de obturación con el acceso a la cámara NDK de Android?
  • Depuración de Android NDK, bajo windows
  • La aplicación de Android se reinicia automáticamente después de un error
  • No se puede obtener el valor JNIEnv * en contexto arbitrario
  • Depurar biblioteca nativa en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.