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

时间:2013-11-26 20:06:52

标签: android-studio gradle square-wire

我已根据Square Wire library在Android Studio中设置我的项目以使用this question

Build - > Compile Project工作正常。

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

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

Android Studio inline compile errors

另一个症状是继承自Square Message类的方法在编辑器中显示为“无法解析方法”编译错误,即使它们构建并运行正常。

Android Studio single line compile error

我是否需要做更多的事情而不仅仅是在我的项目中为我的模块添加build.gradle中的依赖项?

29 个答案:

答案 0 :(得分:111)

以下步骤有助于

  1. 关闭您的项目,并在项目文件夹中删除project/.idea
  2. 删除~/.gradle文件夹。
  3. 再次打开项目。一切都应该解决。

答案 1 :(得分:102)

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

<强>诊断

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

gradle sync

但是,在我的情况下有一些错误:

errors found

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

libraries

这似乎是我原始配置的宿醉,我将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)

1)点击gradle图标(Android工作室右侧)

enter image description here

2)点击刷新按钮,等待问题解决:D

enter image description here

答案 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)中更改了以下条目:

  1. 升级SDK(从“compileSdkVersion 25”升级到“compileSdkVersion 26”或者当您阅读本说明时可能更高):

    // compileSdkVersion 25

    compileSdkVersion 26

    评论:此更改强制程序在下次同步时下载/安装新的sdk。

  2. 升级appcompat-v7:

    // implementation'com.android.support:appcompat-v7:25.4.0'

    实施'com.android.support:appcompat-v7:26.1.0'

  3. 升级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'

  4. 在PROJECT build.gradle中,升级google-services:

    // classpath'com.google.gms:google-services:3.1.0'

    classpath'com.google.gms:google-services:3.2.0'

  5. 升级gradle(从4.4到4.6)。来自gradle-wrapper.properties: distributionUrl = HTTPS://services.gradle.org/distributions/gradle-4.6-all.zip

  6. 完成这些更改后,清理项目,使缓存/重启无效,删除.idea / libraries内容并重新同步(不确定顺序,但所有这些活动都解决了我的问题)。

答案 6 :(得分:7)

删除.idea中的库文件夹为我解决了此问题。它位于项目的根目录/.idea/库中。

我正在使用Android Studio 3.1.4

答案 7 :(得分:6)

我对此的修正-

  1. 打开您的build.gradle文件
  2. 删去dependencies{}内的所有内容
  3. 粘贴在记事本中以超级安全地暂时保存
  4. build.gradle文件中选择“立即同步”
  5. 等待同步失败
  6. 将您的依赖项粘贴回
  7. 再次“立即同步”

尝试了很多解决方案,这是我唯一的解决方法。

答案 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)

我找到了简单的方法

  • 打开应用级别build.gradle
  • 删除显示错误和同步的依赖项。
  • 再次添加依赖性和同步。

错误消失了!

之前

Before

之后

After

答案 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。

  • 位置:C:\ Users \ your.username

答案 17 :(得分:1)

在我的情况下,由于某种原因, Android插件版没有设置。我确实尝试清除缓存并删除.gradle和.idea,但它没有成功,在最后徘徊了几个小时后,我发现了这个。

File > Project Structure

答案 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)

我可以通过以下步骤解决相同的问题:

  1. 将gradle中的库版本更新为任意随机数,例如:  lib_1.0.0-> lib_1.0.0.0

  2. 渐变同步

  3. 同步显示错误

  4. 还原版本更改  lib_1.0.0.0-> lib_1.0.0

  5. 渐变同步

打开带有导入的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"