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

我已经在 Android Studio 中设置了我的项目来使用 方线图书馆,就像每个 这个问题一样。

Build-> Compile Project工作正常。

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

但是,如果打开生成的 Protocol Buffer 文件之一,则不能识别 Square 包。

Android Studio inline compile errors

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

Android Studio single line compile error

除了在 build.gradle中为项目中的模块添加依赖项之外,我还需要做其他事情吗?

80409 次浏览

感谢 Freedom 让我走上了正确的道路。

诊断

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

gradle sync

然而,在我的案例中有一些错误:

errors found

展开(不是很明显)链接可以看到细节,我的线程运行时库显示在一个不正确的位置:

libraries

这似乎是我最初将 JAR 导入 libs 文件夹时遗留下来的问题。

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}

我随后将其改为直接从 MavenCentral (就像这里一样)导入,似乎旧设置从未被新设置覆盖。

The Fix

解决方法是从 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 显然还修复了其他漏洞有相同的症状,所以如果你有一个旧版本,你可能希望升级。

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

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

简单解决方案

浏览一下链接,我就知道了。

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

解决了我的问题

转到 档案 > 无效缓存/重新启动 > 无效并重新启动

来源: youtube

我以前也遇到过类似的问题,使缓存失效并重新启动并不能解决它。我刚刚做了一个 Gradle Sync 一切正常。

1)点击渐变图标(在 android 工作室的右边)

enter image description here

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

enter image description here

如果以上所有答案对你都不起作用。 只要尝试将依赖关系更新到最新版本即可。 这招对我很管用。

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

  1. 升级 SDK (当您阅读本说明时,将 SDK 版本25的编译版本升级为26的编译版本或更高版本) :

    //CompileSdkVersion 25

    编译 SdkVersion 26

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

  2. 升级应用程序 -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 服务:

    //classspath‘ com.google.gms: google-services: 3.1.0’

    Classspath‘ com.google.gms: google-services: 3.2.0’类路径‘ com.google.gms: google-services: 3.2.0’

  5. 升级级别(从4.4升级到4.6): 分布地址 url = https://services.gradle.org/distributions/gradle-4.6-all.zip

在这些更改之后,清除项目,使缓存/重新启动失效,删除。想法/库内容和重新同步(不确定顺序,但所有这些活动为我解决了问题)。

以下步骤有所帮助

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

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

在我的情况下,由于某种原因,Android 插件版本没有设置。我试过清除缓存和删除。分级和。我也有这个想法,但是没有成功,在最后徘徊了几个小时之后,我发现了这个。

File > Project Structure

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

我使用的是 Android Studio 3.1.4

为了我

删除。分级和。创意文件夹

解决了这个问题。

我对此的修正

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

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

我尝试了上面的大部分修复程序,实际工作的方法是删除所有。安卓工作室配置文件夹,然后重新启动安卓工作室。

  • 位置: C: Users your.username

下面的步骤,当项目是成功地编译,但与未解决的类(所有类的使用将在所有文件的红色)

步骤1. 删除. gradle 文件

步骤2。删除。想法文件

第三步: 在系统上打开 新的安卓工作室窗口与其他一些安卓项目以错误结束项目

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

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

通过清洁项目 Build->Clean Project解决了这个问题

在 Android Studio v3.2.1版本中,我仍然经常遇到同样的问题,并且解决了这个问题,只是移除了 .idea文件夹中的这两个子文件夹(不需要删除整个 .idea文件夹) ,而渐变同步不起作用:

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

我找到了简单的方法

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

错误消失!

之前

Before

之后

After

只要在你的 Android 工作室里这样做:

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

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

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

似乎每个人都用不同的方法来解决这些问题。我会推荐另外一个我觉得没有其他的那么具有侵略性。当我从包含的 aar 库引入更改时,我将打开该项目的“ setings.gradle”文件。

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

include ':mainproj',

然后同步你的项目。然后粘贴回来,并重新同步您的项目一次。我相信这与一些手动删除步骤是相同的,但是这使您可以在 IDE 中更快、更轻松地完成删除操作。

对于我来说,我引用模块库中的 jar。它无法解析罐子中的符号。所以我找到了解决问题的办法。用 provided的方法。

provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')

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

对于 android 工作室 < = 3.2.1来说还可以。

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

我在这里解决了这个问题(我只是给每个模块起了不同的包名) : 任何 android Studio 版本 > 3.2.1都显示红色资源,但仍然可以编译

我通过以下步骤解决了同样的问题:

  1. 更新图书馆版本的分级,以任何随机数,例如: Lib _ 1.0.0-> lib _ 1.0.0.0

  2. 同步

  3. 同步显示错误

  4. 恢复版本更改 Lib _ 1.0.0.0-> lib _ 1.0.0

  5. 同步

打开包含导入的 java 文件,查看错误是否被清除。

所有的解决方案对我都不管用。.我从我的电脑卸载 java,运行 android 工作室,以确保它检测到卸载,然后再次安装。

如果您选择这样做,请尝试更改 jdk 路径并在项目结构中设置新路径。如果没用,就用 卸载 java

我用下面的方法固定

方法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

在重新启动 Android Studio 之前,我只做了一个清理项目和重建项目,它解决了我的问题。也许 Android Studio 实际上并不更新界面中的引用

如果 文件-> 无效缓存/重新启动-> 无效和重新启动不工作,然后遵循几个步骤。

1)关闭你的 Android 工作室

2)然后删除 C: Users Balbir. AndroidStudio4.0 system cache 用户 Balbir. AndroidStudio4.0系统缓存文件夹上的手册。

3)启动 Android Studio

这是为我工作。

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

下面这些对我很有用。

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

implementation "androidx.activity:activity-ktx:1.2.2"

Android Studio 4.2在2021年似乎仍然有这个问题。

作为一个快速的第一次尝试修复之前,您尝试更多的参与者在这里: 退出,然后重新启动 Android Studio (即传统的,关闭它一个...)。这东西帮我修好了。

如果这不起作用,那么是时候在这里解决更复杂的问题了..。

我知道这是一个古老的问题,但也许这会帮助某人,因为以上的答案没有一个适合我, 除了来自 Victor Choy 的 这个答案,这个答案启发了我的处境,所以我要感谢 Victor 的答案。

在使用 AGP 版本7.2.0和包装器版本7.3.3升级到 android Studio chipmunk 之后,我遇到了一个问题,我的一个模块库基本上是一个 jar 文件。我的编辑器显示错误,就像问题中的错误,但我的应用程序编译良好,运行没有问题。所以问题是我在 build.gradle文件中有库依赖项,如下所示:

dependencies{
... //other dependencies
api project(':foo-library')
...
}

但当我看到维克多的回答后,我改成了这样:

api fileTree(include:['foo-library.jar'], dir: '../foo-library')

它解决了由于在我的代码中使用这个库而导致的错误。 我不知道为什么会这样,因为在升级 Android 工作室之前一切都很好。

您可以将 api替换为 implementation或任何其他适合您需要的依赖前缀。

对我来说,我有一个非常老的项目与梯度插件版本3。+.我用的是安卓工作室的花栗鼠。解决方案是通过升级项目 Gradle 插件 version = Android Gradle Plugin version 7.2.2(在撰写本评论时)。