对kotlin文件的每次更改都会在构建时导致重新声明错误。解决它的唯一方法是清理项目,然后重新构建。项目中没有其他文件与我正在编辑的文件同名。
我试过了:
当前版本正在使用:
org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21
com.android.tools.build:gradle:3.2.0
Run Code Online (Sandbox Code Playgroud)
导致错误的示例代码。如果我没有构建addedThisLine它,它将作为它的第一个构建。然后,无论如何我编辑文件都会导致以下错误。
package beagle.com
class ErrorFragment {
val hello = "Hello"
init {
var goodbye = "goodbye"
var addedThisLine = "When this line is added I get error"
}
}
Run Code Online (Sandbox Code Playgroud)
错误我得到
这发生在我项目中的每个kotlin文件中,我上面发布的代码是最基本的文件。如您所见,它指向错误的类的名称。
TL;DR:检查您的目录是否与它们在settings.gradle.
值得一提的是:MacOS 并不总是区分大小写,这可能会导致奇怪的问题。
我想我找到了一个解决方案:区分大小写的东西。
就我而言,我使用的模块,我们只需要调用模块:moduleA,moduleB
在settings.gradle我有:include ':ModuleA', 'moduleB'但文件系统级别的目录是:moduleA/和moduleB/
这看起来很奇怪,不应该工作,但第一次运行总是有效,然后下一次运行将失败,直到项目被清理。
我决定保持一致并将目录重命名为settings.gradle列表,即使在 AndroidStudio 中它们以settings.gradle. 这也有助于清理事情,因为 git 有一个配置,在.git/config该配置下可以忽略区分大小写的内容。
因此,请检查您的目录的大小写与它们在settings.gradle.
在重命名东西并用 gradle 清理之后,一切都像以前一样。
然后升级kotlin和gradle版本
尝试Run这样做可能会有所帮助
./gradlew clean
rm -rf ~/.gradle/caches/*
Run Code Online (Sandbox Code Playgroud)
或者
如果未添加,请尝试将以下内容添加到 gradle.build 文件中
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1476 次 |
| 最近记录: |