Android Studio 3.1:编辑器中错误的未解析引用
我正在运行Ubuntu17.10,我刚刚将Android Studio从3.0.1版升级到3.1版。以下是帮助->关于中的版本信息:Android Studio 3.1:编辑器中错误的未解析引用,android,android-studio,kotlin,android-studio-3.1,Android,Android Studio,Kotlin,Android Studio 3.1,我正在运行Ubuntu17.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 不幸的是,
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的引用,但在新版本中它似乎无法解析。下面是一个屏幕截图,显示了我的意思:
在Android Studio 3.1中,它声称诸如setContentView()
之类的核心Android函数不存在,并不断提示我为它创建一个抽象函数——我显然不想这样做。但是,如果我点击build按钮,我会在8s内获得一个构建成功
有人知道我的编辑器为什么要这样做,以及我是如何让Android相关的函数和类再次正确解析的吗
编辑:更新:我现在得到了有关该问题的更多信息,但仍未解决:
- 构建->清理,然后构建->重建没有帮助
- 文件->使缓存无效并重新启动也没有帮助
- 手动梯度同步也不能
- 用Java而不是Kotlin编写的另一个项目可以很好地工作
- (它是开源的)
退出演播室
Delete.idea/(在我看来这是最重要的)、build/、app/build目录
启动工作室
重新设置设置->构建->渐变设置(在我的例子中,最后一个稳定的渐变本地分布)
清理和重建项目
帮助我。删除{projectDir}/.idea/libraries
,然后转到文件->将项目与Gradle文件同步。我在Android Studio 3.2.1上遇到了同样的问题
解决方案是使用稳定的'com.android.tools.build:gradle:3.2.1',而不是alpha
在project build.gradle中,按照下面的代码更改版本(或者如果有更新的稳定版本)
如果这不能解决您的问题,请在文件>>中选择“使缓存无效/重新启动…”。。。在下一个对话框中,选择“失效并重新启动”
对我来说,这一步很有效:
一) 从android studio中删除.idea文件夹
二) 转到文件>无效缓存/重新启动
三) 它将要求您确认并单击“无效并重新启动”
四) 转到构建>清理项目
五) 转到生成>重建项目
试试这个
快乐的编码 我尝试了这里提出的所有解决方案,但都不起作用。对我来说,有效的方法是禁用并重新启用Kotlin插件。我也遇到了同样的问题。上面列出的“修复”都没有帮助
只需在终端中运行:
./gradlew --stop
./gradlew --rerun-tasks assemble{flavour}
例如:
./gradlew --stop
./gradlew --rerun-tasks assembleDevDebug
如果重构后发生这种情况,并且您已经尝试了下面提到的所有方法(我稍后会详细说明列表),请尝试转到具有未解析引用的类,并删除其所有导入。
然后再次执行导入操作,确保导入了正确的类
我尝试了以下对我无效的方法:
- 使缓存无效并重新启动Android Studio
- 删除.build、app/build和.idea
- 同步渐变文件
- 启用和禁用Kotlin插件
- 清理/重建项目
- 重新启动我的电脑(MacOS)
当我删除Android Studio并重新安装时,它起到了帮助作用。上面的建议没有帮助。我有一个非常类似的问题:
工作正常的布局资源(即:activity_view.xml)将突然无法检测到或显示在自动完成列表中,等等
我尝试了所有这些“删除.idea文件夹/使缓存无效/重新启动Android studio”的解决方案,但没有任何效果
有效的解决方案:
事实证明,整个R包的导入语句(import android.R
)在某个时候被添加到了导入语句中,并以某种方式造成了问题(对于特定布局资源,仅出于某些奇怪的原因)
删除导入android.R
立即解决了问题,将其放回原处也立即重新创建了问题。
希望这能帮助那些出于相同/相似原因而看到这篇文章的人
帮助我的是
使用AS 3.6.3
我转到build.gradle(模块:应用程序)
将buildToolsVersion从“29.0.3”更改为“28.0.3”
同步我的项目,它工作了
我认为29.0.3版本有问题
我卸载了29.0.3版本,再次安装并使用它。
29.0.3版本非常适合我请确保您没有在任何活动/片段中导入android.R。当Android Studio试图将代码从Java转换为Kotlin时,就会发生这种情况
删除此行并尝试运行项目
转到文件->使缓存无效/重新启动对我有效读到最后:)
令人惊讶的是,在这么多答案之后,没有一个对我有效。
我发现问题出在android工具版本和gradle发行版上
我从中升级了classpath
'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
所以,如果清理/构建、使缓存无效、删除.idea对您不起作用。请尝试升级(如果您最近的更改导致此问题,请尝试降级)这些版本。我尝试了这里或其他任何地方提供的所有其他解决方案,有什么帮助吗
正在改变我的插件在gradle文件中的方式
我将其更改为以下格式:
plugins{
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'com.google.gms.google-services'
}
在此之后,缓存失效并重新启动,重建了项目,一切正常。
令人惊讶的是,这个简单的零导致了一个巨大的错误。您是否将android gradle插件升级到了最新版本
plugins{
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'com.google.gms.google-services'
}