J'essaie d'ajouter une bibliothèque de jar externe à mon projet Android. Il compile et télécharge sur mon appareil correctement mais je reçois le logcat suivant:Bibliothèque externe jar incomplet
04-11 08:17:16.849: E/AndroidRuntime(16053): FATAL EXCEPTION: main
04-11 08:17:16.849: E/AndroidRuntime(16053): java.lang.NoClassDefFoundError: org.puredata.android.service.R$raw
04-11 08:17:16.849: E/AndroidRuntime(16053): at org.puredata.android.service.PdService.onCreate(PdService.java:184)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.app.ActivityThread.handleCreateService(ActivityThread.java:1951)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.app.ActivityThread.access$2500(ActivityThread.java:117)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:985)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.os.Handler.dispatchMessage(Handler.java:99)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.os.Looper.loop(Looper.java:130)
Le problème semble être que la classe R ne sont pas inclus dans la compilation bibliothèque. Through this question Je suis arrivé here où ce texte confus déclare
Changement important: Nous avons changé les projets de bibliothèque façon génèrent et packager les classes R:
- La classe R n'est pas empaqueté dans la sortie du pot des projets de bibliothèque plus. Le projet de bibliothèque ne génère pas la classe R pour les projets de bibliothèque dont ils dépendent.
- Seuls les projets d'application principaux génèrent les classes Library R à côté des leurs.
Ce signifie que les projets de bibliothèque ne peuvent pas importer la classe R à partir d'un autre projet de bibliothèque dont ils dépendent. Ce n'est pas nécessaire de toute façon, car leur classe R propre comprend toutes les ressources nécessaires. Notez que l'application projets peuvent encore importer les classes R de la bibliothèque projets référencés, mais encore une fois, ce n'est pas nécessaire que leurs propres classes R comprennent toutes les ressources
Donc, je suis un peu coincé. Comment puis-je/je forcer une bibliothèque à inclure ses ressources nécessaires? Sinon, comment puis-je utiliser la classe R dans une bibliothèque que je veux rendre disponible sans partager mon code de projet?
Les bibliothèques Android ne sont pas des fichiers JAR. Ils comprennent des ressources, d'où ils doivent être liés en tant que source - voir les documents via la réponse Aleks fourni. (Les fichiers JAR de bibliothèque standard peuvent être utilisés dans des projets Android, mais ils n'incluent pas de ressources.) –