我已根据Square Wire library在Android Studio中设置我的项目以使用this question。
Build
- > Compile Project
工作正常。
2:03:10 PM Compilation completed successfully in 31 sec
但是,如果我打开一个生成的协议缓冲区文件,则无法识别Square包。
另一个症状是继承自Square Message
类的方法在编辑器中显示为“无法解析方法”编译错误,即使它们构建并运行正常。
我是否需要做更多的事情而不仅仅是在我的项目中为我的模块添加build.gradle
中的依赖项?
答案 0 :(得分:111)
以下步骤有助于
project/.idea
~/.gradle
文件夹。再次打开项目。一切都应该解决。
答案 1 :(得分:102)
感谢free3dom让我在这里走上正轨。
<强>诊断强>
Android Studio中的Sync Project with Gradle Files
选项似乎可以使Project Structure
库保持最新状态。
但是,在我的情况下有一些错误:
扩展(不是很明显)链接显示了详细信息。我的线程运行时库显示在一个不正确的位置:
这似乎是我原始配置的宿醉,我将JAR导入了libs文件夹。
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
我随后将其更改为直接从Maven Central(as per here)导入,似乎旧设置从未被新设置覆盖。
修复
修复方法是从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 apparently fixes other bugs,因此如果您使用旧版本,则可能希望升级。
答案 2 :(得分:43)
答案 3 :(得分:12)
Android Studio v3.2.1仍然存在相同的问题,仅通过删除.idea
文件夹的这两个子文件夹即可解决该问题(无需删除整个.idea
文件夹),而gradle同步不起作用:
./idea/caches
./idea/libraries
答案 4 :(得分:11)
对我来说,删除项目的.gradle和.idea文件夹可以解决问题。
答案 5 :(得分:7)
升级到Android Studio 3.1后出现此问题。 我通过升级我使用的所有组件解决了这个问题。 所以我在build.gradle(app)中更改了以下条目:
升级SDK(从“compileSdkVersion 25”升级到“compileSdkVersion 26”或者当您阅读本说明时可能更高):
// compileSdkVersion 25
compileSdkVersion 26
评论:此更改强制程序在下次同步时下载/安装新的sdk。
升级appcompat-v7:
// implementation'com.android.support:appcompat-v7:25.4.0'
实施'com.android.support:appcompat-v7:26.1.0'
升级firebase:
//实施'com.google.firebase:firebase-ads:11.4.2'
实施'com.google.firebase:firebase-core:12.0.1'
实施'com.google.firebase:firebase-ads:12.0.1'
在PROJECT build.gradle中,升级google-services:
// classpath'com.google.gms:google-services:3.1.0'
classpath'com.google.gms:google-services:3.2.0'
升级gradle(从4.4到4.6)。来自gradle-wrapper.properties: distributionUrl = HTTPS://services.gradle.org/distributions/gradle-4.6-all.zip
完成这些更改后,清理项目,使缓存/重启无效,删除.idea / libraries内容并重新同步(不确定顺序,但所有这些活动都解决了我的问题)。
答案 6 :(得分:7)
删除.idea中的库文件夹为我解决了此问题。它位于项目的根目录/.idea/库中。
我正在使用Android Studio 3.1.4
答案 7 :(得分:6)
我对此的修正-
build.gradle
文件dependencies{}
内的所有内容build.gradle
文件中选择“立即同步” 尝试了很多解决方案,这是我唯一的解决方法。
答案 8 :(得分:4)
成功编译项目但具有未解决的类时,执行以下步骤(所有文件中所有类的使用情况均为红色)
第1步。删除.gradle文件
第2步。删除.idea文件
第3步。在系统上打开新的Android Studio窗口以及其他一些Android项目,并错误关闭项目
步骤3。现在,从工作室工具栏再次打开/导入项目 Android Studio->文件->打开
注意: 现在,当您导入项目时,新的.gradle和新的.idea文件夹将由编译器以已解决的依赖关系自动生成。
答案 9 :(得分:3)
我通过以下方法被固定
方法1
文件>无效的缓存/重新启动>无效并重新启动
方法2
1. Close current project 2. Go to your project path C://User/Android studio project/your project 3. Delete two files .gradle and .idea
1. Close Android studio 2. Go to the file C://Users/your username/ 3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5
答案 10 :(得分:2)
如果以上所有答案都不适合您。 只需尝试将您的依赖项更新到最新版本。 它对我有用。
答案 11 :(得分:2)
似乎每个人都使用不同的方法来解决这些问题。我会建议另一个我觉得比其他人更具侵略性的人。当我从包含的aar库中引入更改时,我将打开该项目的“ settings.gradle”文件。
然后从项目列表中切出主要项目模块:
include ':mainproj',
,然后同步您的项目。然后将其粘贴回并再次重新同步项目。我相信这与某些手动删除步骤相同,但这使您可以从IDE中更快,更轻松地完成此操作。
答案 12 :(得分:2)
答案 13 :(得分:1)
这些解决方案在Android Studio 0.5.8中没有帮助我解决同样的问题。
我描述了我对同一问题的回答(我猜):https://stackoverflow.com/a/23891829/534698 我刚刚删除了〜/ .AndroidStudioPreview目录(在Ubuntu中)。我错过了所有Android Studio设置,但它确实有效。
答案 14 :(得分:1)
删除.idea/caches
和.idea/libraries
应该可以清除所有错误。
答案 15 :(得分:1)
只需在您的Android Studio上执行此操作:
文件->使高速缓存无效/重新启动->使无效并重新启动
这对我有用。无需清除./gradle或./idea文件夹
答案 16 :(得分:1)
我尝试了上面的大多数修补程序,实际上有效的方法是删除所有.AndroidStudio配置文件夹,然后重新启动Android Studio。
答案 17 :(得分:1)
答案 18 :(得分:0)
通过清理项目Build->Clean Project
答案 19 :(得分:0)
对我来说,我在模块库中引用了一个jar。它无法解析jar中的符号。因此,我找到了适合自己情况的解决方案。使用provided
方式。
provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')
答案 20 :(得分:0)
以上所有答案均不适用于我。我的问题是我有3个模块,其中2个具有相同的程序包名称。
对于Android Studio <= 3.2.1来说还可以。
对于Android Studio> 3.2.1,ressouce为红色。
我在这里解决了这个问题(我只是为每个模块制作了不同的包名称):Any android Studio version > 3.2.1 show red resource but still compile
答案 21 :(得分:0)
我可以通过以下步骤解决相同的问题:
将gradle中的库版本更新为任意随机数,例如: lib_1.0.0-> lib_1.0.0.0
渐变同步
同步显示错误
还原版本更改 lib_1.0.0.0-> lib_1.0.0
渐变同步
打开带有导入的Java文件,以清除错误。
答案 22 :(得分:0)
没有一个解决方案对我有用。我求助于从计算机上卸载Java,运行android studio以确保它检测到卸载,然后再次安装。
如果选择这种方式,请尝试更改jdk路径并在项目结构中设置新路径。如果这不起作用,请继续执行uninstall java。
答案 23 :(得分:0)
之前我遇到过类似的问题,缓存失效并重新启动无法解决问题。我刚做了一个Gradle Sync,一切正常。
答案 24 :(得分:0)
在重新启动Android Studio之前,我仅创建了一个Clean Project和Rebuild Project,它解决了我的问题。也许Android Studio实际上不更新界面中的引用
答案 25 :(得分:0)
如果文件->使高速缓存无效/重新启动->无效并重新启动不起作用,则请执行几步。
1。)关闭您的Android Studio
2。),然后在 C:\ Users \ Balbir \ .AndroidStudio4.0 \ system \ caches 文件夹上删除手册。
3。)启动Android Studio
这是为我工作。
答案 26 :(得分:0)
遇到了同样的问题,我的一个模块下有一条波浪线。原来它来自生成的文件夹中的一个 java 文件。我所做的是退出 Android Studio,删除 .idea
和 .gradle
目录,并且永远不要再次打开生成的文件夹,否则红线会回来。
答案 27 :(得分:0)
2021 年的 Android Studio 4.2 似乎有时仍然存在此问题。
在您尝试此处更复杂的修复之前,作为快速的第一次尝试修复:退出并重新启动 Android Studio(即传统的,将其关闭并打开...)。这为我修好了。
如果这行不通,那么就该在这里研究更复杂的答案了...
答案 28 :(得分:-1)
以下对我有用。
在 build.gradle 文件中,添加以下行:
implementation "androidx.activity:activity-ktx:1.2.2"