Erreur lors de l'ajout prêts à l'emploi apk avec des bibliothèques partagées pour PSBA
J'ai essayé d'ajouter un préconstruit APK pour mon Android construire. L'APK contient plusieurs bibliothèques partagées (*.donc les fichiers). Il se compile sans problème, mais j'ai toujours une erreur de l'application en indiquant que les bibliothèques ne peut pas être trouvé.
Pourquoi cela pourrait-il être?
Ici est la android.mk
code:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := apkwithso
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_REQUIRED_MODULES := libx liby libz
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
alors libx, y, z sont mes alors libx.donc, liby.de la sorte, et libz.donc
J'ai aussi essayé de copier le .donc manuellement à partir de l'APK sur la lib mais il ne fonctionne pas.
Je suis de la compilation avec Android 4.1.2 pour le Galaxy Nexus Maguro.
OriginalL'auteur Cattivo | 2013-02-04
Vous devez vous connecter pour publier un commentaire.
BUILD_PREBUILT
appelsprebuild.mk
script. La description de ce script est la suivante:Il ne dit pas que l'application sera installée. Donc, je pense que c'est pourquoi votre demande ne peut pas trouver les bibliothèques.
La solution est d'extraire les bibliothèques de l'emballage et de les copier séparément à partir de l'application. Les détails de la façon de faire cela, vous pouvez trouver ici.
Pas du tout! Je suis content que j'ai pu vous aider! )
Lorsque vous utilisez
BUILD_PREBUILT
vous devez explicitement spécifierLOCAL_MODULE_CLASS
ouLOCAL_MODULE_PATH
(citer Intégré Android).OriginalL'auteur Yury
J'ai eu ce problème moi-même, la raison en est que lorsque les fichiers APK sont inclus dans un build ils sont essentiellement en contournant le processus d'installation. Ce processus d'installation est le point où toutes les bibliothèques partagées sont extraites de l'apk et les mettre dans l'endroit approprié, ergo si cela n'arrive jamais, les bibliothèques ne seront pas disponibles. C'est parce que les paquets qui sont construits à partir de la source lors de l'AFST construire soit ont leurs prêts à l'emploi bibliothèques partagées inclus pendant que le processus de construction ou de leurs bibliothèques sont également construits à partir des sources, et dans les deux cas, ces bibliothèques sont mis dans l'endroit approprié.
Pour cette raison, en plus de l'apk du module lui-même, vous devez ajouter le texte suivant dans le même .mk fichier:
Puis ajouter:
Vous devez créer un BUILD_PREBUILT bloc comme ça pour chaque .. Rappelez-vous juste d'appeler
include $(CLEAR_VARS)
au début de chaque bloc.Notre build utilise un préconstruit APK avec un module natif. Permet d'appeler ce truc.apk qui comprend le module local libbar.. Notre APK est à l'origine d'un "system_apps" répertoire dans l'arborescence source. Nous vérifions en APK plutôt que le code source. Cette logique m'oblige à vérifier dans une bibliothèque native et une apk, mais l'apk a déjà la bibliothèque native. Si cette solution ne fonctionne pas pour moi. Ou suis-je en train de faire quelque chose de mal? Je veux la bibliothèque à être tiré à partir de l'APK et de mettre dans le bon endroit au moment de la construction. Il ne semble pas le faire.
Après lecture, il semble que ce est correct. Les modules natifs doivent être inclus en plus de l'APK. La poisse, j'ai maintenant 2+ articles à suivre, plutôt que de 1 apk.
OriginalL'auteur Justin Buser
Les fichiers peuvent également être spécifié dans
aospSource:destinationOnImage
format de ce genre dans ladevice-partial.mk
lors de l'ajout d'une coutume répertoire vendor:Vous pouvez ajouter à peu près tout ce que vous voulez ici (autres que .les fichiers apk), et il sera copié dans votre image.
OriginalL'auteur Justin Buser
Mes Instructions n'est pas à propos de votre erreur! Mais il peut être utile d'erreur similaire
Si vous essayez de copier prêts à l'emploi apk en utilisant:
et vous obtenez cette erreur:
Vous pouvez supprimer cette case à ma modifier le fichier
build/core/MakeFile
et de commenter ces lignes:par l'insertion,
#
avant chaque ligneOriginalL'auteur Benny
Trop ajouter plusieurs bibliothèques pour un apk un paragraphe supplémentaire (comme dans la réponse de Justin Buser) doit être ajoutée pour chaque bibliothèque.
OriginalL'auteur Michael