【发布时间】:2021-09-29 14:30:00
【问题描述】:
我构建了一个 AAR 库并添加到我的 android 项目中。
它编译成功,但是当我运行应用程序时,它显示错误:
... AndroidRuntime: java.lang.ClassNotFoundException: Didn't find class "com.example.application.R.layout"
然后我解压AAR库,class.jar中没有R.Class。
有没有人和我一样的问题?你知道如何在 AAR 库中生成 R.Class 来避免这个问题吗?
【问题讨论】:
-
请尝试从 lib 中删除此文件并从另一个路径重新导入此 aar 文件,并检查您在 gradle 中正确定义它的位置,如实现文件('libs/xyz.aar')或检查R.layout 的路径与包这个想法可能对你有帮助
-
@Ghanshyam 谢谢。我确实像你说的那样,清理/重建项目。然后应用程序工作,此错误未显示。但我不知道根本原因是什么。 class.jar 中仍然没有 R.Class,为什么这些类可以相互链接。
-
R 类未打包在 Jar 中,库项目未生成它们所依赖的 R 类。只有应用程序项目会生成库 R 类以及它们自己的类。我已经在下面的答案中更新了有关此问题的详细解决方案,以帮助其他人,请检查
-
参考 httpsstackoverflow.comquestions34915501aar-support-in-android-mk-the-apk-contain-no-r-java-which-packagename-is-aar
标签: android android-gradle-plugin build.gradle gradle-plugin aar