java - 将 gradle 更新到版本 5.1.1 导致 `Unresolved reference:` 问题

标签 java android android-studio gradle ros

我将 Gradle 插件版本从 3.3.2 更新到 3.4.0,并将 Gradle 更新到版本 5.1.1。我确信这会导致我导入库时未知。它给出错误未解析的引用

enter image description here

清理项目、重建、无效缓存/重新启动和丢弃 .idea 文件都不能解决此问题。唯一对我有用的是将 Gradle 版本恢复到 3.3.2。但这不是我想要的。

我遇到的问题与 ROS 库有关;具体来说,ROS Java bootstrap 的 message_ Generation。该库与 rosjava 库具有相同的相对路径;即org.ros.*。我不确定这是否与该问题有关。

对此我能做什么?非常感谢:非常欢迎所有帮助!

最佳答案

Gradle github issue page 上描述了该解决方案我也描述了我的问题。所描述的是ROS发布了错误的metadata

“这表示您只在运行应用程序时需要包含 org.ros.internal.message.Message 的 jar,而不是在编译应用程序时需要,但情况似乎并非如此。要解决此问题,您需要添加 ROS 编译时未包含的额外依赖项。”

我按照描述修复了它;我添加了更新后找不到的库对应的依赖。这对我来说很有效:

implementation 'org.ros.rosjava_messages:sensor_msgs:1.12.5'
implementation 'org.ros.rosjava_bootstrap:message_generation:0.3.3'
implementation 'org.ros.rosjava_messages:std_msgs:0.5.11'
implementation 'org.ros.rosjava_messages:geometry_msgs:1.12.7'

关于java - 将 gradle 更新到版本 5.1.1 导致 `Unresolved reference:` 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745425/

相关文章:

java - 加快在 IntelliJ IDEA 13.1.5 中启动已编译代码

Java Spring Hibernate - 没有来自 HTML 表单的波兰语字母

java - SQS 可以触发 AWS 事件桥服务中的事件吗?

android - OBD2 如何检查点火开关是否关闭

android - 如何在一个Android Studio项目中构建两个Android应用程序?

android - Realm 数据库的仪器测试给出了 "Call ' Realm.init(Context )' before creating Realmconfiguration"即使我称之为

java - 为什么将类传递给 Java 中的方法很有用?

Android ListView 行 View 左右边框拉伸(stretch)到高度

java - 连接在一个屏幕上成功下载,但在第二个屏幕上出现错误,代码几乎相同

java - 如何从另一个类刷新 TextView?