我正在尝试将外部 jar 库添加到我的 Android 项目中。它可以正确编译并下载到我的设备,但我得到以下 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 类。通过这个问题,我到达了这个令人困惑的文本状态的地方
重要更改:我们更改了库项目生成和打包 R 类的方式:
- R 类不再打包在 Library Projects 的 jar 输出中。
- 图书馆项目不会为他们所依赖的图书馆项目生成 R 类。只有主应用程序项目会生成库 R 类以及它们自己的类。
这意味着库项目无法从它们所依赖的另一个库项目中导入 R 类。这无论如何都不是必需的,因为它们自己的 R 类包含所有必要的资源。请注意,应用程序项目仍然可以从引用的库项目中导入 R 类,但同样,这不是必需的,因为它们自己的 R 类包含所有资源
所以,我有点卡住了。我如何/我可以强制图书馆包括其所需的资源?如果没有,我如何在不共享我的项目代码的情况下使用我想要提供的库中的 R 类?