177

根据这个问题,我在 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除了在我的项目中为我的模块添加依赖项之外,我还需要做更多的事情吗?

4

30 回答 30

146

以下步骤有助于

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

再次打开项目。一切都应该解决。

于 2018-04-12T11:42:32.847 回答
122

感谢 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显然修复了具有相同症状的其他错误,因此如果您有旧版本,您可能希望升级。

于 2013-11-28T04:00:14.903 回答
101

简单的解决方案

通过链接,它对我有用。

  1. File从 android studio 左上角的菜单中选择选项。
  2. 选择选项:Invalidate Cache/Restart它将打开一个对话框。
  3. 单击带有选项的第一个按钮:Invalidate and Restart
  4. 它将关闭 Android Studio 并重新启动它。此外,它将开始重新索引项目。

它解决了我的问题

转到文件>使缓存无效/重新启动>无效并重新启动

来源这里为 youtube

于 2016-08-16T12:33:59.983 回答
45

1)点击gradle图标(android studio右侧)

在此处输入图像描述

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

在此处输入图像描述

于 2017-04-27T21:27:11.693 回答
17

我仍然经常遇到与 Android Studio v3.2.1 相同的问题,并且在 gradle 同步不起作用的情况下仅删除文件夹的这两个子文件.idea夹(无需删除整个文件夹)就解决了问题:.idea

  • ./idea/caches
  • ./idea/libraries
于 2018-11-12T09:00:59.307 回答
16

为了我

删除 .gradle 和 .idea 文件夹

的项目解决了这个问题。

于 2018-08-15T04:38:22.310 回答
13

只需在您的 Android 工作室上执行此操作:

文件 -> 使缓存无效/重新启动 -> 无效并重新启动

这对我有用。无需清除 ./gradle 或 ./idea 文件夹

于 2019-03-04T07:22:41.813 回答
11

我对此的hacky修复 -

  1. 打开你的build.gradle文件
  2. 切掉里面的所有东西dependencies{}
  3. 粘贴在记事本中,超级安全的临时保存
  4. build.gradle在文件中选择“立即同步”
  5. 等待同步失败
  6. 将您的依赖项粘贴回
  7. 再次“立即同步”

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

于 2018-10-04T19:47:34.150 回答
7

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

我正在使用 Android Studio 3.1.4

于 2018-08-08T12:45:44.510 回答
7

升级到 Android Studio 3.1 后我遇到了这个问题。我通过升级我使用的所有组件解决了这个问题。所以我在 build.gradle (app) 中更改了以下条目:

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

    //compileSdkVersion 25

    compileSdkVersion 26

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

  2. 升级 appcompat-v7:

    //实现'com.android.support:appcompat-v7:25.4.0'

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

  3. 升级火力基地:

    //实现 '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:

    //类路径 'com.google.gms:google-services:3.1.0'

    类路径 '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

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

于 2018-04-01T00:51:15.300 回答
7

如果 File -> Invalidate caches/Restart -> Invalidate and Restart is Not Working 然后按照几个步骤。

1.) 关闭你的 Android Studio

2.) 然后删除C:\Users\Balbir\ .AndroidStudio4.0\system\caches文件夹上的手册。

3.) 启动 Android Studio

这是为我工作。

于 2020-11-20T06:13:29.150 回答
6

我通过以下方法修复

方法一

文件 > 使缓存无效/重新启动 > 无效并重新启动

方法二

  • 如果您仅针对特定项目遇到此错误,请执行此操作
   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
于 2020-01-23T06:15:38.523 回答
5

当项目成功编译但类未解析时的以下步骤(所有文件中的所有类的使用都将显示为红色)

步骤 1. 删除 .gradle 文件

步骤 2. 删除 .idea 文件

第 3 步。使用系统上的其他一些 android 项目打开新的 Android Studio 窗口,并在错误时关闭您的项目

步骤 3。现在从工作室工具栏Android Studio -> 文件 -> 打开再次打开/导入项目

注意:现在,当您导入项目时,新的 .gradle 和新的 .idea 文件夹将由编译器自动生成并解析依赖项。

于 2018-10-24T09:09:59.850 回答
2

似乎每个人都使用不同的方法来解决这些问题。我会建议另一种我觉得比其他人更不具侵略性的方法。当我从包含的 aar 库中引入更改时,我将打开项目的“settings.gradle”文件。

然后从项目列表中删除主项目模块:

include ':mainproj',

然后同步您的项目。然后将其粘贴回并再次重新同步您的项目。我相信这与某些手动删除步骤相同,但这让您可以从 IDE 中更快、更轻松地执行此操作。

于 2019-03-20T18:20:27.470 回答
2

就我而言,出于某种原因,未设置Android 插件版本。我确实尝试过清除缓存并删除 .gradle 和 .idea ,但没有成功,最终徘徊了几个小时后,我找到了这个。

文件 > 项目结构

于 2018-04-18T05:19:33.267 回答
2

删除.idea/cachesand.idea/libraries应该可以解决所有错误。

于 2019-03-18T10:41:14.100 回答
2

我找到了简单的方法

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

错误消失了!

前

后

于 2018-11-22T11:38:05.157 回答
2

我尝试了上面的大部分修复,实际有效的是删除所有 .AndroidStudio 配置文件夹,然后重新启动 Android Studio。

  • 位置:C:\Users\your.username
于 2018-10-18T19:35:17.143 回答
2

如果以上所有答案都不适合您。只需尝试将您的依赖项更新到最新版本。它对我有用。

于 2017-07-25T04:57:14.093 回答
1

这些解决方案在 Android Studio 0.5.8 中没有帮助我解决同样的问题。

我描述了我对同一个问题的回答(我猜):https : //stackoverflow.com/a/23891829/534698 我刚刚删除了 ~/.AndroidStudioPreview 目录(在 Ubuntu 中)。我错过了所有的 Android Studio 设置,但它可以工作。

于 2014-05-27T14:19:06.823 回答
1

遇到了同样的问题,我的一个模块下有一条波浪线。原来它来自生成文件夹中的一个 java 文件。我所做的是退出 Android Studio,删除.idea.gradle目录,并且永远不要再次打开生成的文件夹,否则红线会回来。

于 2021-02-16T01:55:02.533 回答
1

2021 年的 Android Studio 4.2 似乎有时仍然存在此问题。

作为一个快速的第一次尝试修复,然后再在这里尝试更多涉及的问题:退出然后重新启动 Android Studio(即传统的,将其关闭并打开...)。这为我修好了。

如果这不起作用,那么是时候在这里解决更多涉及的答案了......

于 2021-05-31T15:19:36.540 回答
0

以上所有答案都对我不起作用。我的问题是我有 3 个模块,其中 2 个具有相同的包名称

android studio <= 3.2.1 没问题。

对于 android studio > 3.2.1,资源是红色的。

我像这里提到的那样解决了它(我只是为每个模块制作了不同的包名称):任何 android Studio 版本> 3.2.1 显示红色资源但仍然编译

于 2019-08-29T08:11:49.747 回答
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 文件以查看错误已清除。

于 2019-10-14T11:08:05.560 回答
0

我之前遇到过类似的问题,使缓存无效并重新启动并没有解决它。我刚刚做了一个 Gradle Sync,一切正常。

于 2017-04-08T11:29:11.210 回答
0

对我来说,我在模块库中引用了一个 jar。它无法解析 jar 中的符号。所以我找到了适合我情况的解决方案。使用provided方式。

provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')
于 2019-04-11T09:41:07.923 回答
0

通过清理项目解决了问题Build->Clean Project

于 2018-11-07T12:17:45.857 回答
0

没有一个解决方案对我有用..我求助于从我的计算机上卸载 java,运行 android studio 以确保它检测到卸载,然后再次安装它。

如果您选择这种方式,请尝试更改 jdk 路径并在项目结构中设置新路径。如果这不起作用,请继续卸载 java

于 2019-12-14T14:46:20.270 回答
0

在重新启动 Android Studio 之前,我只创建了一个 Clean Project 和 Rebuild Project,它解决了我的问题。也许Android Studio实际上并没有更新界面中的引用

于 2020-04-27T22:29:07.710 回答
-1

以下对我有用。

在 build.gradle 文件中,添加以下行:

implementation "androidx.activity:activity-ktx:1.2.2"
于 2021-03-31T19:02:34.477 回答