每次构建Kotlin文件时,都会导致重新声明错误。解决它的唯一方法是清理项目,然后重新构建。项目中没有其他文件与我正在编辑的文件同名。
我尝试过:
当前版本正在使用:
org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21
com.android.tools.build:gradle:3.2.0
将导致错误的示例代码。如果我不使用addedThisLine
进行构建,则它将作为其第一个构建。然后,无论如何我编辑文件都会导致以下错误。
package beagle.com
class ErrorFragment {
val hello = "Hello"
init {
var goodbye = "goodbye"
var addedThisLine = "When this line is added I get error"
}
}
我得到错误
这在我项目中的每个kotlin文件中都会发生,我上面发布的代码是最基本的文件。如您所见,它指向错误的类的名称。
答案 0 :(得分:12)
只是清理项目,然后再次重建项目
答案 1 :(得分:1)
然后升级kotlin
和gradle
版本
尝试Run
,这可能会有帮助
./gradlew clean
rm -rf ~/.gradle/caches/*
或
如果未添加以下内容,请尝试将以下内容添加到gradle.build文件中
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
答案 2 :(得分:0)
TL; DR :检查您的目录名称与settings.gradle
我想我找到了一个解决方案:区分大小写的内容。
就我而言,我正在使用模块,我们就称这些模块为:moduleA
,moduleB
在settings.gradle
中,我有:include ':ModuleA', 'moduleB'
,但文件系统级别的目录是:moduleA/
和moduleB/
这似乎很奇怪,不应该起作用,但是第一次运行总是可行的,然后下一次运行将失败,直到项目被清除。
我决定保持内容一致,并按settings.gradle
列出的目录进行重命名,即使它们在AndroidStudio中以settings.gradle
中列出的名称出现。这也有助于清理内容,因为git在.git/config
下有一个配置,该配置指出忽略区分大小写的内容。
因此,请检查目录的大小以及settings.gradle
中目录的列出方式。
重命名内容并用gradle进行清洁后,一切都照常进行。
答案 3 :(得分:0)
这对我有用
答案 4 :(得分:0)
1.清理并重建
如果这对类名冲突不起作用!
只需重命名或更改类的路径,因为您在一个包中有同名的类!
答案 5 :(得分:0)
如果清理项目并重建不起作用。尝试同步项目。这对我有用。
答案 6 :(得分:-1)
从2020年7月开始,如果已经存在同名类,则将出现此Redeclaration错误,因此您必须重命名或移至其他软件包。