Android Studio 3.1:编辑器中错误的未解析引用

Android Studio 3.1: Erroneous unresolved references in editor

我是 运行 Ubuntu 17.10,我刚刚将 Android Studio 从版本 3.0.1 更新到 3.1。这是帮助->关于中的版本信息:

Android Studio 3.1
Build #AI-173.4670197, built on March 22, 2018
JRE: 1.8.0_152-release-1024-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.13.0-37-generic

不幸的是,虽然 IDE 之前在我的(有史以来第一个)Kotlin 项目中能够解析 android 特定的引用,但在新版本中它似乎无法解析。这是显示我的意思的屏幕截图:

AndroidStudio3.1中,声称Android核心功能如setContentView()不存在,一直提示我为它创建一个抽象函数——我显然不想这样做。但是,如果我点击构建按钮,我会得到 BUILD SUCCESSFUL in 8s.

为什么我的编辑器要这样做,我如何得到 Android 相关函数和 类 再次正确解析?

  1. 退出工作室。
  2. 删除 .idea/(在我看来这是最重要的)、build/、app/build 目录。
  3. 启动工作室
  4. Set Settings -> Build -> Gradle settings back(最后稳定 Gradle local distribution in my case)。
  5. 清理并重建项目。

帮助我。

删除 {projectDir}/.idea/libraries,然后转到文件 -> 将项目与 Gradle 个文件同步。

我在 Android Studio 3.2.1 上遇到了同样的问题。

解决方案是使用稳定 'com.android.tools.build:gradle:3.2.1',而不是 alpha...

在项目中build.gradle像下面的代码一样更改版本(或者如果有较新的稳定版本)

dependencies {
  classpath 'com.android.tools.build:gradle:3.2.1'
} 

如果这不能解决您的问题,那么在文件 >> 选择无效 caches/Restart... 并在下一个对话框中选择无效并重新启动

对我来说这一步有效:

I) 从 android 工作室删除 .idea 文件夹

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

III) 会要求您确认并点击失效并重新启动。

IV) 转到构建 > 清理项目

V) 转到构建 > 重建项目

试试这个。

快乐编码..!

我尝试了这里提出的所有解决方案,但都没有用。对我有用的是禁用然后重新启用 Kotlin 插件。

我遇到了同样的问题。上面列出的 "fixes" 中的 None 有帮助。

只需 运行 在终端中:

./gradlew --stop
./gradlew --rerun-tasks assemble{flavour}

例如:

./gradlew --stop
./gradlew --rerun-tasks assembleDevDebug

如果重构后发生这种情况,并且您已经尝试了下面提到的所有方法(稍后我将详细说明列表),请尝试转到具有未解析引用的 class 和 删除它的所有导入。 然后再次导入,确保导入 正确的 classes.

我尝试了以下对我不起作用的方法:

  • 使缓存无效并重新启动 Android Studio
  • 删除 .build、app/build 和 .idea
  • 同步 Gradle 个文件
  • 启用和禁用 Kotlin 插件。
  • Clean/Rebuild 项目
  • 重新启动我的电脑 (MacOS)。

当我删除 Android Studio 并重新安装时它很有帮助。上面的建议没有帮助。

我有一个非常相似的问题:

工作正常的布局资源(即:activity_view.xml)会突然检测不到或显示在自动完成列表等中

我尝试了所有这些 "delete .idea folder/invalidate caches/restart Android studio" 解决方案,但没有任何效果..

有效的解决方案:

结果是整个 R 包 (import android.R) 的导入语句在某个时候被添加到导入语句中并且以某种方式造成了问题(仅出于某些奇怪的原因对于特定布局资源)

删除 import android.R 立即解决了问题,将其放回去也立即重新创建了它。

希望对因 same/similar 原因post 遇到此问题的任何人有所帮助


对我有帮助的是 使用 AS 3.6.3 我去 build.gradle (模块:app) 将 buildToolsVersion 从“29.0.3”更改为“28.0.3” 同步我的项目并且成功了

我认为 29.0.3 版本有问题。

我卸载了29.0.3版本重新安装就可以使用了。 29.0.3 版本非常适合我

确保您没有在您的任何 activities/fragments 中导入 android.R。当 Android Studio 尝试将代码从 Java 转换为 Kotlin 时,可能会发生这种情况。

删除此行并尝试 运行 您的项目。

Goto File->Invalidate Cache/Restart 适合我

读到最后:)

令人惊讶的是,在回答了这么多之后,none 对我有用。 我发现问题出在 android 工具版本和 gradle 发行版上。

我从

升级了类路径

'com.android.tools.build:gradle:3.6.1'

'com.android.tools.build:gradle:4.0.1'

并且还从

升级了 distributionUrl

distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

因此,如果 clean/build,使缓存无效,删除 .idea 对您不起作用。请尝试升级(或降级,如果您最近的更改导致此问题)这些版本。

我尝试了此处或其他任何地方提供的所有其他解决方案,对我有帮助 正在改变我的插件在 gradle 文件中的方式。

我改成了这样的格式:

plugins{
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-android-extensions'
    id 'com.google.gms.google-services'
}

在此之后,使缓存失效并重新启动,重建项目,一切正常。 令人惊讶的是,这个简单的没有导致巨大的错误。

对我有用的是将 kotlin-gradle-plugin 版本更改为 IDE.

中使用的相同版本的 Kotlin 插件

也就是在你的顶层build.gradle,找到kotlin-gradle-plugin,把版本改成和IDE Kotlin插件一样的版本。

IDE Kotlin 插件版本可以在文件 -> 设置 -> 插件 -> Kotlin 中找到