Kotlin文件更改导致重新声明错误

时间:2019-06-27 16:18:28

标签: android kotlin

每次构建Kotlin文件时,都会导致重新声明错误。解决它的唯一方法是清理项目,然后重新构建。项目中没有其他文件与我正在编辑的文件同名。

我尝试过:

  • 重命名我一直在上的课
  • 在Android Studio中升级和降级kotlin,gradle和kotlin插件的版本
  • 使用beta版Android Studio
  • 重新排列我的gradle文件中的插件

当前版本正在使用:

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"
    }
}

我得到错误

Redeclaration Error

这在我项目中的每个kotlin文件中都会发生,我上面发布的代码是最基本的文件。如您所见,它指向错误的类的名称。

7 个答案:

答案 0 :(得分:12)

只是清理项目,然后再次重建项目

答案 1 :(得分:1)

然后升级kotlingradle版本

尝试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

中显示的名称完全相同

我想我找到了一个解决方案:区分大小写的内容

就我而言,我正在使用模块,我们就称这些模块为:moduleAmoduleB

settings.gradle中,我有:include ':ModuleA', 'moduleB',但文件系统级别的目录是:moduleA/moduleB/

这似乎很奇怪,不应该起作用,但是第一次运行总是可行的,然后下一次运行将失败,直到项目被清除。

我决定保持内容一致,并按settings.gradle列出的目录进行重命名,即使它们在AndroidStudio中以settings.gradle中列出的名称出现。这也有助于清理内容,因为git在.git/config下有一个配置,该配置指出忽略区分大小写的内容。

因此,请检查目录的大小以及settings.gradle中目录的列出方式。

重命名内容并用gradle进行清洁后,一切都照常进行。

答案 3 :(得分:0)

这对我有用

  1. 构建 > 清理项目
  2. 构建 > 重建项目
  3. 运行

答案 4 :(得分:0)

1.清理并重建

如果这对类名冲突不起作用!

只需重命名或更改类的路径,因为您在一个包中有同名的类

答案 5 :(得分:0)

如果清理项目并重建不起作用。尝试同步项目。这对我有用。

答案 6 :(得分:-1)

从2020年7月开始,如果已经存在同名类,则将出现此Redeclaration错误,因此您必须重命名或移至其他软件包。