Android Studio内联编译器显示红色错误,但使用Gradle编译正常。

192
我已在Android Studio中设置了项目,使用了Square Wire库,按照此问题的建议进行操作。 Build -> Compile Project 正常运行。
2:03:10 PM Compilation completed successfully in 31 sec
然而,如果我打开我生成的 Protocol Buffer 文件之一,则无法识别 Square 包。
另一种症状是,从 Square 的 Message 类继承的方法在编辑器中显示为“无法解析方法”的编译错误,尽管它们可以构建和运行正常。
我是否需要做比在我的项目中的模块的 build.gradle 中添加依赖项更多的事情?

我使用我的库(而不是外部库)遇到了类似的问题,看看我是如何在这里解决的:https://dev59.com/lmIk5IYBdhLWcg3wL7fj#50569818 - nah0y
尝试这个,经过尝试一切后,它对我有用。 - Livin
33个回答

157

以下步骤可以帮助解决问题

  1. 关闭您的项目,并在项目文件夹中删除 project/.idea
  2. 删除 ~/.gradle 文件夹。

重新打开该项目,问题应该已经解决。


1
花了好几个小时才解决这个问题。谢谢。我的错误在于我只删除了 .gradle 而没有删除 .idea。 - M at
2
这对我有用,删除 .gradle 和 .idea 文件夹,然后执行“无效化并重启”操作解决了我的问题,最后再与 gradle 同步。 - Pankaj
53
删除.idea目录中的所有内容是一个坏主意,因为它可能会重置所有项目设置。在尝试了其他所有解决方案之后,只需删除.idea/libraries.idea/caches最终解决了我的问题。 - fdermishin
1
我按照这个方法操作后,删除了存储在我的Android Studio中的所有书架更改,而且无法撤消。如果您要执行此操作并知道将删除哪些内容,请小心。我建议遵循@fdermishin的评论。 - AndroDev
我强烈推荐这里关于"清除缓存/重启"的另一个答案。删除.idea目录中的文件让我处于一个不一致的状态。清除缓存的解决方案对我起到了修复作用。 - undefined
显示剩余10条评论

124

感谢free3dom的指导,让我找到正确的方向。

诊断

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

gradle sync

然而,在我的情况下出现了一些错误:

errors found

展开(不是很明显的)链接后,可以看到详细信息。我的wire-runtime库显示在错误的位置:

libraries

这似乎是我最初配置的余威,当时我曾将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 />

删除并重新添加库后,根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 显然修复了其他一些具有相同症状的错误,因此如果您使用的是旧版本,则可能希望升级。


3
谢谢 Dan J. 在尝试你的解决方案之前,我尝试了这个更简单的方法(在我看来),并且它对我有用:打开编辑器右侧的Gradle面板(位于“Maven项目”和“指挥官”上方),然后单击刷新按钮。 这将刷新模块设置。感谢@Matteo Danieli提供的提示(参见:https://dev59.com/o2Qn5IYBdhLWcg3wtpBW#17043001)。 - almighty972
1
需要删除本地的jar依赖项,这对我解决了问题,感谢您的启发。 - jhegedus
我刚刚点击了“与Gradle文件同步项目”按钮,现在一切都很好!非常感谢你!你救了我的一天哈哈 - Jorge Gabriel Siqueira
对我没用。但是删除 .gradle 和 .idea 是有效的。 - Nabzi
现在,同一个按钮被显示为带有向下箭头的大象图标。 - t.m.
谢谢 <3 !!! - Yechiel babani

107

简单解决方案

按照以下步骤进行操作,对我很有用。

  1. 从Android Studio左上角的菜单中选择文件选项。
  2. 选择无效缓存/重启选项,它会打开对话框。
  3. 点击第一个按钮,选择无效并重启选项。
  4. Android Studio将关闭并重新启动。同时,它将开始重新索引项目。

这解决了我的问题。

前往文件 > 无效缓存/重启 > 无效并重启

在此查看YouTube源


这对我有用;在一个信号不好的地方尝试编程后,Android Studio 到处显示错误。 (!!!) 然后我确保有良好的 wifi 连接并重新构建,但是错误仍然存在。即使进行了清理/构建也无法解决。只有使缓存失效才能解决问题。 - Someone Somewhere
在 Fedora 上使用 Android Studio 2.1.3。这个解决方案对我很有效。添加了 libgdx 工具后,导入时出现了错误,但编译正常。关闭并重新打开无效,但执行“使项目无效并重启”操作可以正常工作。 - JoeMoe1984
1
在 AS 3.1.4 中工作过! 我认为这是处理它的正确方式中最好的建议。这是通过 Android Studio 的菜单命令完成的。这绝对比在文件环境中手动重置要好得多。 - Jan Bergström
在我的3.5.1版本上运行良好。 - Neela
现在是2022年,对于一些奇怪的类似Lint问题仍然有很好的解决方法。对于我和其他搜索该问题的人来说,Android Studio可以找到Kotlin类,但无法找到Java类。不过整个项目仍然可以成功构建。 - Wex
在2023年8月,还可以使用Android Studio Flamingo | 2022.2.1 Patch 2进行工作。 - horvoje

46

1) 点击gradle图标(位于Android Studio右侧)

输入图片说明

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

输入图片说明


在Android Studio 3.1+中,请转到文件>无效缓存/重启>无效并重启。 - DroidDev

20

对于我来说

删除项目中的 .gradle 和 .idea 文件夹

解决了问题。


对我没用 - M. Usman Khan

19

我一直都在使用Android Studio v3.2.1遇到同样的问题,通过删除 .idea 文件夹下的这两个子文件夹解决了问题(不需要删除整个.idea文件夹),而此时 gradle 同步并不能解决这个问题:

  • ./idea/caches
  • ./idea/libraries

在大多数情况下,它可以解决我的问题。但在极少数情况下,可能需要“使缓存无效并重新启动”,或者更改Gradle版本。 - GoRoS
1
最新版本的2021.3.1 Arctic Fox不存在库。 - Freddy Daniel

13

在你的Android Studio上只需要执行以下步骤:

文件 -> 清除缓存/重启 -> 清除并重启

这个方法对我有效。无需清除./gradle或./idea文件夹。


11

这是我为此问题想出的临时解决办法 -

  1. 打开你的build.gradle文件
  2. 剪切dependencies{}内的所有内容
  3. 将其粘贴到记事本以进行超级安全的暂存
  4. build.gradle文件中选择“立即同步”
  5. 等待同步失败
  6. 将你的依赖项重新粘贴回去
  7. 再次进行“立即同步”

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


8

我是通过以下方法进行固定的

方法一

文件 > 无效缓存/重启 > 无效并重启

方法二

  • 如果您只在特定项目中遇到此错误,则执行以下操作
   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

乔达尔,干得好,其他的Dineshbhai... 乔达尔。现在正在工作。红线消失了。 - Jaimin Modi

7

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

我正在使用Android Studio 3.1.4。


2
这个方法可行,但我还得使其失效并重新启动。 - Dan Anderson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接