support aar sur Android.mk
je fais du développement de ROM personnalisé android maintenant. le système de construction d'aosp est basé sur Android.mk, mais je veux inclure quelques bibliothèques aar, est-il possible d'inclure des libaires Aar dans Android.mk ?
2 réponses
vous devez ajouter les blocs suivants dans votre 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)
s'il vous plaît également être conscient de satisfaire minSdkVersion requis par la bibliothèque dans votre fichier de manifeste.
la réponse de Kostiantyn Luzan a un problème. Après compilation, les ressources de l'aar seront ajoutées au fichier R de mon paquet principal, mais pas dans le fichier R du paquet de l'AAR. Par exemple, le nom du paquet de l'aar est my.le nom du paquet du projet principal est my.principal. L'aar a une chaîne de caractères nommée "string_in_aar". Après compilation, l'id des chaînes est my.principal.R. string_in_aar plutôt que la mienne.de l'aar.R. string_in_aar. Cela provoque un crash de l'apk, car le code dans l'aar utilise mon.de l'aar.R. string_in_aar.
la solution est l'utilisation: LOCAL_AAPT_FLAGS + = -- extra-packages {nom du paquet aar}. Vous obtiendrez deux R fichier. Ils a la de certains contenus. Un paquet est le paquet principal, l'autre est de l'aar paquet.