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

Dan*_*n J 130 gradle android-studio square-wire

根据这个问题,我已经在Android Studio中设置我的项目以使用Square Wire库.

Build- > Compile Project工作正常.

2:03:10 PM Compilation completed successfully in 31 sec
Run Code Online (Sandbox Code Playgroud)

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

Android Studio内联编译错误

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

Android Studio单行编译错误

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

小智 123

以下步骤有帮助

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

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

  • 删除`.idea`目录中的所有内容是个坏主意,因为它可能会重置所有项目设置.在尝试所有其他解决方案后,删除`.idea/libraries`和`.idea/caches`终于解决了我的问题. (33认同)
  • 这对我有用,删除.gradle和.idea然后做无效和重启解决了我的问题.然后与gradle同步. (2认同)

Dan*_*n J 108

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

诊断

Sync Project with Gradle FilesAndroid Studio中的选项似乎可以使Project Structure库保持最新.

gradle sync

但是,就我而言,有一些错误:

发现错误

扩展(不是很明显)链接显示了细节.我的wire-runtime库显示在一个不正确的位置:

图书馆

这似乎是我原始配置的宿醉,我将JAR导入libs文件夹.

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}
Run Code Online (Sandbox Code Playgroud)

我随后将其更改为直接从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 />
Run Code Online (Sandbox Code Playgroud)

删除并重新添加库后,它将更改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!/" />
Run Code Online (Sandbox Code Playgroud)

更新

Android Studio v0.4.4 显然修复了其他具有相同症状的错误,因此如果你有旧版本,你可能希望升级.

  • 谢谢Dan J.在我尝试你的解决方案之前,我尝试了这个更简单的方法(据我所知)并且它对我有用:打开编辑器右侧的Gradle面板(上面的"Maven Projects"和"Commander")和单击刷新按钮.刷新了模块设置.@Matteo Danieli的积分(参见:http://stackoverflow.com/a/17043001) (3认同)

Man*_*oni 85

简单解决方案

浏览链接,它对我有用.

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

它解决了我的问题

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

来源于youtube


Dro*_*Dev 43

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

在此输入图像描述

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

在此输入图像描述

  • 在Android Studio 3.1.2上不适用于我 (5认同)

GoR*_*RoS 14

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

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


kva*_*aaz 12

对我来说,删除项目的.gradle和.idea文件夹解决了问题.


小智 8

我的hacky解决了这个问题 -

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

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


Pab*_*nso 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. 升级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

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

  • 删除.idea/libraries内容,它对我有用.非常感谢 (4认同)

Kam*_*kov 7

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

我正在使用Android Studio 3.1.4

  • 这工作但我不得不失效并重新启动. (2认同)

小智 7

如果 文件 -> 无效缓存/重新启动 -> 无效并重新启动不起作用,则执行以下几个步骤。

1.) 关闭您的 Android Studio

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

3.) 启动Android Studio

这是为我工作。


小智 6

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

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

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


小智 5

成功编译项目但使用未解决的类时执行以下步骤(所有文件中的所有类使用情况均为红色)

步骤1.删除.gradle文件

步骤2.,删除.idea文件

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

第三步。现在,从Studio工具栏Android Studio-> File-> Open再次打开/导入项目。

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


Din*_*nan 5

我通过以下方法修复

方法一

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

方法二

  • 如果您仅针对特定项目遇到此错误,请执行此操作
   1. Close current project
   2. Go to your project path C://User/Android studio project/your project
   3. Delete two files .gradle and .idea
Run Code Online (Sandbox Code Playgroud)
  • 如果您在所有项目中都面临此错误,请执行以下操作
1. Close Android studio
2. Go to the file C://Users/your username/
3. Delete files .gradle , .cache ,.android, .AndroidStudio3.5
Run Code Online (Sandbox Code Playgroud)