首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >外部库jar不完整

外部库jar不完整
EN

Stack Overflow用户
提问于 2013-04-11 13:32:42
回答 1查看 920关注 0票数 1

我正在尝试向我的Android项目添加一个外部jar库。它正确地编译并下载到我的设备,但是我得到了下面的logcat:

代码语言:javascript
复制
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类不再打包在Library项目的jar输出中。
  • 库项目不为它们所依赖的库项目生成R类。只有主应用程序项目与它们自己的类一起生成库R类。这意味着库项目不能从它们所依赖的另一个库项目导入R类。这是没有必要的,因为他们自己的R类包括所有必要的资源。请注意,应用程序项目仍然可以从引用的库项目导入R类,但这是不需要的,因为它们自己的R类包含所有资源

所以,我被困住了。如何强制库包含其所需的资源?如果没有,我如何在不共享项目代码的情况下使用库中的R类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-11 13:37:53

Android图书馆项目不同于普通图书馆。对于API级别14之前的Android版本,您不能将它们编译成独立的jar文件并将其包含到项目中。相反,您需要将它们作为库项目包含在您自己的Android项目中。这意味着您需要拥有库项目的完整源代码。没有它,您就不能将它用作库项目。

当您将它作为库项目包含到您自己的Android项目中并编译您的项目时,构建工具将组合来自库项目和您自己的项目的资源定义(R类),并创建一个R类。然后,您将可以访问来自您自己的项目和库项目的资源。

从API开始,14级库项目可以编译成独立的jars,您可以在google的开发人员文档站点上找到如何做到这一点的信息。有关更多信息,请阅读Android图书馆项目文档。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15950172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档