Soporte de aar en Android.mk
Estoy haciendo desarrollo de ROM personalizado de android ahora. El sistema de construcción de nosp se basa en Android.mk, pero quiero incluir algunas bibliotecas aar, ¿es posible incluir librerías aar en Android.mk?
- Android, configuración de un entorno de compilación de Linux, libgl1-mesa-glx: paquete i386 tiene dependencias no satisfechas
- Agregar un proyecto de android como una biblioteca en la aplicación AOSP
- Error: el paquete com.google.android.gcm no existe - Después de migrar a Gradle
- Error de compilación de Gradle "Sin firma del método"
- ¿Cuál es la diferencia entre algunos "Android Development / SDK tools"?
- Android Gradle Plugin 1.1.0 - getNdkFolder () no se encuentra más, cualquier sustituto?
- Ejecute la tarea antes de la compilación mediante el complemento Android Gradle
- Sdkmanager vs "android update sdk" para instalar las dependencias
- Desactivar la optimización de recursos / imágenes / png de Android
- Vector drawables que se convierten automáticamente a pngs
- Nuevo sistema de compilación de Android Gradle crea conflictos de nombres de paquetes con la Autoridad de Proveedores
- Descarga lenta de SDK a través del gestor SDK de Android
- No se encontró actionbarsherlock.apk
Deberías agregar los siguientes bloques en tu Android.mk
LOCAL_STATIC_JAVA_AAR_LIBRARIES:= <aar alias> . . . include $(BUILD_PACKAGE) include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := <aar alias>:libs/<lib file>.aar include $(BUILD_MULTI_PREBUILT)
Por favor, tenga en cuenta también que satisface minSdkVersion requerida por la biblioteca en su archivo de manifiesto.
La respuesta de Kostiantyn Luzan tiene un problema. Después de compilar, los recursos en el aar se agregarán al archivo R de mi paquete principal, pero no en el archivo R del paquete aar. Por ejemplo, el nombre del paquete de aar es my.aar, el nombre del paquete del proyecto principal es my.main. El aar tiene una cadena llamada "string_in_aar". Después de compilar, el id de cadenas es my.main.R.string_in_aar en lugar de my.aar.R.string_in_aar. Esto hace que el apk se bloquee, porque el código en el aar usa my.aar.R.string_in_aar.
La solución es usar: LOCAL_AAPT_FLAGS + = –extra-packages {aar nombre del paquete}. Obtendrá dos archivos R. Ellos tienen el contenido de algunos. El paquete de uno es el paquete principal, el otro es el paquete aar.
- ¿Cómo puedo pasar de una página a otra sin usar Intent?
- Excepción: Paquete android no pertenece a 2000