根据这个问题,我在 Android Studio中设置了我的项目以使用Square Wire 库。
Build->Compile Project工作正常。
Build
Compile Project
2:03:10 PM Compilation completed successfully in 31 sec
但是,如果我打开我生成的协议缓冲区文件之一,则无法识别 Square 包。
另一个症状是从 SquareMessage类继承的方法在编辑器中显示为“无法解析方法”编译错误,即使它们构建和运行良好。
Message
build.gradle除了在我的项目中为我的模块添加依赖项之外,我还需要做更多的事情吗?
build.gradle
感谢 free3dom 让我在这里走上正轨。
诊断
Android Studio 中的Sync Project with Gradle Files选项似乎使Project Structure库保持最新。
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。
.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
<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显然修复了具有相同症状的其他错误,因此如果您有旧版本,您可能希望升级。