我正在尝试向我的Android项目添加一个外部jar库。它正确地编译并下载到我的设备,但是我得到了下面的logcat:
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)问题似乎是R类没有包含在库编译中。通过这个问题 I到达这里时,这个令人困惑的文本声明
重要变化:我们已经改变了Library项目生成和打包R类的方式:
所以,我被困住了。如何强制库包含其所需的资源?如果没有,我如何在不共享项目代码的情况下使用库中的R类?
发布于 2013-04-11 13:37:53
Android图书馆项目不同于普通图书馆。对于API级别14之前的Android版本,您不能将它们编译成独立的jar文件并将其包含到项目中。相反,您需要将它们作为库项目包含在您自己的Android项目中。这意味着您需要拥有库项目的完整源代码。没有它,您就不能将它用作库项目。
当您将它作为库项目包含到您自己的Android项目中并编译您的项目时,构建工具将组合来自库项目和您自己的项目的资源定义(R类),并创建一个R类。然后,您将可以访问来自您自己的项目和库项目的资源。
从API开始,14级库项目可以编译成独立的jars,您可以在google的开发人员文档站点上找到如何做到这一点的信息。有关更多信息,请阅读Android图书馆项目文档。
https://stackoverflow.com/questions/15950172
复制相似问题