web-dev-qa-db-fra.com

Impossible de trouver Library.apk!

J'ai réussi à restructurer mon application assez bien pour que, à l'exception de quelques méthodes dans une classe d'activité dérivée, tout soit dans un projet de bibliothèque.

Cela fonctionne à merveille, sauf que la console d'Eclipse ( pas LogCat!) Émet le message d'erreur suivant:

[2011-06-13 19:54:08 - MyLibrary] Could not find MyLibrary.apk!

J'ai nettoyé les deux projets (bibliothèque et application), redémarré Eclipse, reconstruit les projets, mais ce message d'erreur étrange persiste.

Que veux dire ce message d'erreur? (surtout à la lumière que tout semble bien fonctionner)

Comment m'en débarrasser?

[~ # ~] mise à jour [~ # ~] : J'ai essayé de supprimer le projet puis de le réimporter selon la suggestion ci-dessous. Ça n'a pas aidé. J'ai ensuite trouvé ce fil qui m'a aidé à réaliser que j'avais <uses-library> dans le fichier AndroidManifest.xml de l'application faisant référence à MyLibrary. Je l'ai supprimé, nettoyé le projet et reconstruit. Le problème persiste.

Je soupçonne maintenant que c'est un "vrai problème", par exemple mauvaise configuration de certains chemins ou autre chose de ma part. Qu'est ce que ça pourrait être?

73
an00b

J'ai trouvé la source du problème!

Il s'avère que " avec la nouvelle fonctionnalité de bibliothèque, vous ne spécifiez pas les projets Android dont vous dépendez dans la section Java Build Path des Propriétés. Vous faites-le dans la section Android des Propriétés ".

Il ne me restait donc plus qu'à aller dans le Properties du projet d'application, à cliquer sur l'onglet Projects, à sélectionner mon propre projet de bibliothèque et à cliquer sur le bouton Remove. C'est ça. Plus de problème.

Dans Eclipse Java EE, sélectionnez les propriétés du projet, puis sélectionnez Project References, Puis vérifiez le FacebookSDK (voir capture d'écran) enter image description here

Merci à Lance Nanek !

162
an00b

C'est intéressant ... Je n'ai pas tout à fait fait ce que la réponse spécifie ..

J'ai un projet Android Android appelé " ConnectionHandler ") qui se connecte à un service Web pour récupérer des informations. Ce projet ne contient aucune classe d'activité. (Si tel était le cas, vous auriez besoin de modifier le fichier AndroidManifest dans votre application principale, ainsi que de suivre les instructions ci-dessous).

Pour utiliser mon projet séparé ConnectionHandler comme bibliothèque, je devais faire ce qui suit:

  1. Dans l'application principale> Sélectionner les propriétés du projet> Aller à Java Chemin de génération> Ajouter des fichiers Jars> Sélectionner le dossier bin de ConnectionHandler> choisir connectionhandler.jar
  2. Dans le projet ConnectionHandler> Sélectionnez les propriétés du projet> Android> Vérifier isLibrary
  3. Dans l'application principale> Sélectionner les propriétés du projet> Aller à Android> Ajouter une référence à ConnectionHandler dans la section Bibliothèque.

Cela fonctionne pour moi , et je peux me connecter à mon service Web, même si je n'ai pas de fichiers source pour le faire dans mon application principale. Tout est contenu dans mon pot ConnectionHandler qui est référencé.

J'espère que cela aide quelqu'un ...

4
ryvianstyron

Aujourd'hui, j'ai commencé à recevoir ce message d'erreur sur la vue Console d'Eclipse, mais il s'avère que ce n'était pas le problème. Mon application serait construite et installée sur mon appareil, et même exécutée pendant une fraction de seconde (jusqu'à ce qu'elle plante). Voici à quoi ressemblait ma vue Console sur Eclipse:

[2013-06-03 09:42:25 - my-Android] Android Launch!
[2013-06-03 09:42:25 - my-Android] adb is running normally.
[2013-06-03 09:42:25 - my-Android] Performing com.my.Android.activity.MainActivity activity launch
[2013-06-03 09:42:25 - my-Android] Uploading my-Android.apk onto device '650rfs2e'
[2013-06-03 09:42:31 - my-Android] Installing my-Android.apk...
[2013-06-03 09:42:35 - my-Android] Success!
[2013-06-03 09:42:36 - my-other-Android] Could not find my-other-Android.apk!
[2013-06-03 09:42:36 - Android-SherlockFragment] Could not find Android-SherlockFragment.apk!
[2013-06-03 09:42:36 - my-Android] Starting activity com.my.Android.activity.MainActivity on device 650rfs2e
[2013-06-03 09:42:36 - my-Android] ActivityManager: Starting: Intent { act=Android.intent.action.MAIN cat=[Android.intent.category.LAUNCHER] cmp=com.my.Android/.activity.MainActivity }

Mais après une inspection minutieuse de mon LogCat, une exception stupide a été levée à partir d'un fragment que j'essayais d'initialiser. Une fois que j'ai corrigé mon fragment (qui levait un NPE), tout a bien fonctionné, même via ma console me dit toujours qu'il ne peut pas trouver ces APK de bibliothèque.

2
rodrigo-silveira

Avez-vous essayé de supprimer le projet sans le supprimer du disque dur et de réimporter le projet. Cela a semblé fonctionner pour moi quand j'ai eu ce problème.

1
Novazero

Pour moi, la solution à ce problème a été de supprimer les entrées erronées du fichier manifeste des projets de bibliothèque.

Le plantage ne se produirait qu'au moment de l'exécution lors de la première utilisation de mon projet de bibliothèque. Une fois que j'ai modifié la propriété Nom de l'application pour refléter la classe d'application correcte pour le projet tilisé le projet de bibliothèque, cela a fonctionné

0
Shane

Pour moi, la raison pour laquelle cela se produisait était que le projet de bibliothèque et le projet principal avaient le même package. Le moyen le plus simple de modifier le package est de right click on the library project > Android Tools > Rename Application Package.

0
Jarett Millard

En utilisant les préférences Eclipse, vous pouvez vous retrouver avec des bibliothèques ajoutées partout. J'avais une bibliothèque référencée dans/libs et des dossiers de bibliothèques référencées. J'ai dû les supprimer ou les supprimer de ces emplacements et les insérer dans Android Dépendances (en utilisant Préférences -> Android et en naviguant sous la case "Is Library"). )

La mise en page correcte pour mon projet: http://www.pasteall.org/pic/show.php?id=3451

0
darKoram