J'ai un projet Android avec une structure de dossiers code> libs code> Like: Lorsque je construis mon projet en Eclipse, je peux afficher le contenu de l'APK généré à l'aide de Cependant, après avoir installé l'APK, le dossier Cela conduit inévitablement à l'erreur suivante: p> comme une vérification de la santé mentale, j'ai couru Je ne vois rien dans la console de construction ou de la console Eclipse qui suggère TS Il y avait des problèmes de construction ou d'installation de l'application. P> S'il vous plaît laissez-moi savoir dans un commentaire s'il y a des informations spécifiques que je peux fournir cela pourrait aider. P> p> FOO code> et
bar code > sont des bibliothèques tiers,
mystuff code> est ma propre bibliothèque à partir d'un projet distinct Android JNI qui nécessite
gnustl_shared code>, qui est du même projet JNI. P>
Unzip -l code>, et il montre en effet que tous ces fichiers de bibliothèque ont été inclus. P>
/data/data/com.myproject/data/com.myproject/lib code> ne contient aucun
libgnustl_shared.so code>, même si les autres bibliothèques sont présentes. P >
adb pousser ./libs/armeabi/libgnustl_shared.so / données /data/com.myproject/lib Code> et bien sûr, l'application commence comme prévu. P>
libgnustl_shared.so code> d'être installé avec ma demande? li>
3 Réponses :
Je pense que votre S'il vous plaît essayez de copier
Salut @Namuol; si vous n'avez pas pu trouver libgnustl_shared.so i> sous /data/data/com.myproject/lib code> signifie que cette lib n'est pas emballée à votre APK.
@NLULUOL SONT VOTES NOMBRE APP_ABI CODE> IN
Application.mk CODE>? Par défaut, le
app_abi code> est égal à ARMAEBI B>,
Non - libgnustl_shared.so code> est réellement dans l'APK. J'ai fait certain de cela.
@ Namuol, je pense qu'il est préférable de répertorier vos fichiers .mk code>
Que se passerait-il si vous avez supprimé le répertoire Libs / Armeabi-V7A et laissé simplement l'ARMEABI DIR dans votre source?
Regardez la réponse ici: Comment relier une bibliothèque dans NDK Demande
Le problème est probablement dans votre fichier Android.mk. Vous devriez avoir une ligne comme celle du bas: sinon, alors vous n'incluez pas votre bibliothèque partagée. P> p>
J'utilise cette ligne exacte dans le projet JNI où j'ai obtenu libmystuff.so code> et
libgnu_stl_shared.so code>; Le projet que je fais référence dans ma question n'est pas un projet JNI, donc aucun
android.mk code> est nécessaire.
Je pense que, dans votre fichier Android.MK de votre projet JNI, probablement, lorsque vous construisez libmystuff.so, vous référenciez libgnustl_shared.so comme: peut-être que vous pouvez essayer Pour l'ajouter en tant que module (NDK fonctionne vraiment concentré sur les modules), quelque chose comme: p> et (dans la section que vous construisez libmystuff.so): P > et vérifier s'il est enfin copié p> p>
Merci. Il manquait le local_shared_libraries: = gnustl_shared code> ligne.
Vérifiez le manifeste pour les déclarations, y compris toutes les libs.
@RoberTrowntree - Pourriez-vous expliquer ce que vous voulez dire? Je n'ai jamais eu besoin de spécifier des bibliothèques dans
androidmanifest.xml code> pour d'autres projets, si c'est ce que vous parlez de.
Lire ici: développeur.android.com/tools/projects/.../ a>
Ceci est pour référencer d'autres projets de bibliothèque Android que vous avez un accès source à. Ce que j'ai est une combinaison de certains
.jar code> fichiers et certains
.so code> fichiers. Mon fichier
.properties.properties code> ne fait aucune référence à d'autres projets de bibliothèque, mais
libfoo code>,
libbaire code> et
libmystuff code> sont tous installé correctement. La seule bibliothèque manquante est
libgnustl_shared code>. Le développement NDK est tout sauf lisse. : [