J'ai mon propre fichier apk de bibliothèque personnalisée (disons lib.apk) & je veux le rendre disponible pour d'autres applications. Comment fournir la uses-library dans le fichier android manifest.xml en d'autres applications afin d'utiliser ma bibliothèque personnalisée.Comment utiliser mon fichier apk de la bibliothèque personnalisée dans d'autres applications
Répondre
L'élément <uses-library>
est destiné aux modules complémentaires fournis en tant qu'extensions du microprogramme. AFAIK, ce ne sera pas utilisable pour votre scénario. Vous devrez probablement implémenter un service qui expose une API via AIDL ou utilise un ensemble d'actions documentées Intent
pour échanger des données avec d'autres applications ou afficher un ContentProvider
. Sinon, empaquetez votre code en tant que JAR, pas un fichier APK. Vous pouvez voir de nombreux exemples de ceci dans my github repositories (tous les cwac-ones suivent ce modèle).
J'essaie d'utiliser une librairie jar en eclipse (j'ai ajouté une librairie jar externe dans les options Java Build Path de mon projet). L'application compile mais j'ai une exception "Impossible de trouver une classe ..." lors de l'exécution.
Vous pouvez créer un projet lié à un autre projet.
Vous devez faire deux choses dans Eclipse:
- add utilise bibliothèque = nom du package dans le manifest.xml
- propriétés open projet -> Chemin de génération Java -> Projets et ajouter le projet de la bibliothèque utilisée
Mais je n'ai pas réussi à le faire fonctionner. Le sdk télécharge correcly les deux paquets, mais je reçois une erreur de lien
WARN/dalvikvm(444): Link of class 'Lme/guillaumin/android/osmtracker/activity/DisplayTrackMap;' failed
ERROR/dalvikvm(444): Could not find class 'me.guillaumin.android.osmtracker.activity.DisplayTrackMap', referenced from method me.guillaumin.android.osmtracker.activity.TrackLogger.onOptionsItemSelected
WARN/dalvikvm(444): VFY: unable to resolve const-class 154 (Lme/guillaumin/android/osmtracker/activity/DisplayTrackMap;) in Lme/guillaumin/android/osmtracker/activity/TrackLogger;
La VM ne peut pas charger la classe dans mon application qui relie dans l'application libs.
L'application "lib.apk" doit publier les intentions en utilisant Intent-Filters
dans le fichier AndroidManifest.xml.
L'activité qui nécessite d'utiliser l'activité dans le lib.apk, tout doit commencer une intention comme ci-dessous:
Intent i = new Intent();
i.setClass(this, libAPKActivity.class);
Lors de la conversion d'une bibliothèque de pot à et bibliothèque apk assurez-vous que la référence à le pot est supprimé de "Java Build Path" -> "Projets" et la bibliothèque est ajoutée à "Android" -> "Bibliothèque".
Merci, cela a fonctionné pour mon cas où l'application liée à ma bibliothèque personnalisée, mais lors de l'installation de l'APK sur l'appareil, j'ai reçu un avertissement disant que la bibliothèque "APK" n'a pas pu être trouvé. En le supprimant du chemin de compilation Java, mais en le conservant comme référence de la bibliothèque, vous l'avez résolu. – fejd
@fejd Exactement mon expérience comme décrit [ici] (http://stackoverflow.com/a/20320105/2930186) – ripopenid
- 1. android installation du fichier apk
- 2. Comment utiliser la journalisation de bibliothèque d'entreprise dans une action personnalisée .NET
- 3. Comment utiliser la couleur personnalisée
- 4. Comment utiliser pcap_sendqueue_queue() dans la bibliothèque winpcap?
- 5. Comment utiliser l'extension de fichier personnalisée au lieu de .ASPX
- 6. Comment utiliser la balise [mixin] dans les applications AS3?
- 7. Comment utiliser un fichier App.config dans les applications WPF?
- 8. comment utiliser la bibliothèque de médias dans notre application?
- 9. Rendu de l'image dans la bibliothèque Web personnalisée
- 10. Comment utiliser une classe personnalisée dans XAML?
- 11. Comment utiliser un fichier .gif animé dans mon application iPhone?
- 12. Comment utiliser la bibliothèque de file d'attente dans SML/NJ
- 13. Comment utiliser la fonction livevalidation de la bibliothèque javascript livevalidation?
- 14. Comment utiliser la bibliothèque org.hibernate en java?
- 15. Comment inclure la bibliothèque sqlite3 "libsqlite3.0.dylib" dans mon fichier source d'application?
- 16. Flex: comment charger un fichier .swf et utiliser sa bibliothèque?
- 17. Comment utiliser la même bibliothèque pour Silverlight et CLR
- 18. Comment empaqueter des composants à utiliser dans plusieurs applications iPhone?
- 19. Quelle est la différence entre une bibliothèque de contrôle utilisateur et une bibliothèque de contrôle personnalisée?
- 20. Gestion des nouvelles fonctionnalités de bibliothèque dans les anciennes applications
- 21. modèles T4 peuvent utiliser la même bibliothèque
- 22. comment utiliser la police personnalisée dans les pages html pour UIWebView?
- 23. Création d'une bibliothèque de documents personnalisée dans SharePoint
- 24. Comment utiliser jquery dans un fichier php?
- 25. Icône personnalisée par instance de fichier
- 26. Configuration personnalisée pour les applications JBoss?
- 27. Comment utiliser Windows clé dans mon application
- 28. Utiliser * .pdf dans le projet de bibliothèque de classes (web)
- 29. Comment rechercher un fichier dans la bibliothèque java swing?
- 30. Comment lier une bibliothèque dynamique avec qmake dans mon application?
Pourquoi avez-vous besoin d'un fichier APK pour cela? Juste rouler un JAR et vous allez bien. – Matthias
J'ai le même problème. J'ai un logiciel modulaire qui fonctionnera comme multiples activités, et je ne voulais pas répéter les interfaces et le code commun dans tous les modules. Ce serait le cas si j'avais opté pour l'utilisation d'un jar lib. – Spidey
Il est difficile d'inclure des ressources dans les fichiers jar gérés par lib.apk. – phreed