【问题标题】:Android Compose: Type is defined multiple timesAndroid Compose:多次定义类型
【发布时间】:2020-10-05 15:09:42
【问题描述】:

提前感谢您的帮助。

我是 Android 开发的新手,如果我的问题愚蠢或重复,敬请见谅。

我在 Android Studio 4.2.0-alpha12 和 Gradle 版本 6.6.1 上使用 jetpack compose。我在构建应用程序时遇到错误

Type com.example.athis.model.course.Coordinate-$$ExternalSynthetic1 is defined multiple times: /Users/noahtatko/AndroidStudioProjects/golf_score_android/app/build/intermediates/project_dex_archive/debug/out/com/example/athis/model/course/Coordinate.dex, /Users/noahtatko/AndroidStudioProjects/golf_score_android/app/build/intermediates/project_dex_archive/debug/out/com/example/athis/model/course/Hole.dex

kotlin 文件(不是.dex 文件)如下:

// Hole.kt
package com.example.athis.model.course

import androidx.compose.runtime.Immutable

@Immutable
data class Hole(
    val id: Long,
    val hole: Long,
    val yards: Long,
    val handicap: Int,
    val par: Int,
    val coordinates: Coordinate
)
// Coordinate.kt
package com.example.athis.model.course

import androidx.compose.runtime.Immutable

@Immutable
data class Coordinate(
    val id: Long,
    val lat: Double,
    val long: Double
)

我尝试过切换我的 gradle 版本,因为这似乎是正常的修复,但因为我使用的是 compose,所以我仅限于 6.6.1 之后的版本,这些都没有帮助。

可能会导致一件奇怪的事情:即使我在 Mac 上,我也有一个 gradlew.bat 文件,而 ./gradlew build 不起作用。有没有办法再生这些?我试过删除它们,但应用程序根本无法运行,而不仅仅是构建失败。

【问题讨论】:

  • 我将val coordinates: Coordinate 注释掉了,但仍然出现同样的错误,所以这不应该是循环部门的问题。
  • gradlew.bat 文件不能在 Man 上运行,只能在 Windows 上运行。关于主要问题,您是否尝试过运行“清洁项目”?
  • 是的,没有帮助

标签: android kotlin gradle android-jetpack-compose


【解决方案1】:

事实证明,主要问题在于我使用的 compose 版本1.0.0-alpha3。跳转到1.0.0-alpha4 修复了所有问题。

【讨论】:

    【解决方案2】:

    我不得不将 Gradle 从 6.8-rc3 降级到 6.8-rc1 才能消除您在上面发布的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 2020-11-25
      • 2020-07-16
      • 2020-11-15
      • 2021-05-15
      • 1970-01-01
      • 2020-06-15
      相关资源
      最近更新 更多