小编典典

Android Studio 内联编译器显示红色错误,但使用 gradle 编译工作正常

all

根据这个问题,我在 Android Studio中设置了我的项目以使用Square Wire 库

Build->Compile Project工作正常。

2:03:10 PM Compilation completed successfully in 31 sec

但是,如果我打开我生成的协议缓冲区文件之一,则无法识别 Square 包。

Android Studio 内联编译错误

另一个症状是从 SquareMessage类继承的方法在编辑器中显示为“无法解析方法”编译错误,即使它们构建和运行良好。

Android Studio 单行编译报错

build.gradle除了在我的项目中为我的模块添加依赖项之外,我还需要做更多的事情吗?


阅读 109

收藏
2022-08-15

共1个答案

小编典典

感谢 free3dom 让我在这里走上正轨。

诊断

Android Studio 中的Sync Project with Gradle Files选项似乎使Project Structure库保持最新。

梯度同步

但是,就我而言,有一些错误:

发现错误

扩展(不是很明显)链接显示了细节。我的线运行时库显示在不正确的位置:

图书馆

这似乎是我将 JAR 导入到 libs 文件夹中的原始配置的遗留问题。

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

我随后将其更改为直接从 Maven Central导入,并且似乎旧设置从未被新设置覆盖。

修复

修复方法是从Project Structure屏幕上删除库依赖项,然后Sync Project with Gradle Files再次删除。

更多详情

您还可以通过直接打开来查看资源使用的路径.idea/libraries/wire_runtime_1_2_0.xml

我破碎的一个是:

  <component name="libraryTable">
  <library name="wire-runtime-1.2.0">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/MY_MODULE/libs/wire-runtime-1.2.0.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />

删除并重新添加库后,它更改root url为:

      <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.squareup.wire/wire-runtime/1.2.0/jar/44e7acbd5eb6f29698181dc3d67a60acf7efee80/wire-runtime-1.2.0.jar!/" />

更新

Android Studio
v0.4.4显然修复了具有相同症状的其他错误,因此如果您有旧版本,您可能希望升级。

2022-08-15