类型 project.com.project.MainActivity 被定义多次

Posted

技术标签:

【中文标题】类型 project.com.project.MainActivity 被定义多次【英文标题】:Type project.com.project.MainActivity is defined multiple times 【发布时间】:2021-05-15 18:52:20 【问题描述】:

Kotlin 和 Java MainActivity 类中的 android 应用程序 ID 冲突

错误:

Type project.com.project.MainActivity is defined multiple times 
./project/build/app/intermediates/javac/debug/classes/project/com/project/MainActivity.class,
./project/build/app/tmp/kotlin-classes/debug/project/com/project/MainActivity.class

Kotlin 和 Java MainActivity 类都是使用 flutter run 命令生成的,并且都包含 package project.com.project

MainActivity.class

package project.com.project

public class MainActivity 
   public MainActivity() 
   

MainActivity.kt

package project.com.project

import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity() 


环境:

Android Studio  4.1.2
Gradle Plugin       4.1.2 
Gradle Version  6.5 
Flutter Version     1.22

在 Android Studio 中试过:

Build -> Clean Project, 
Build -> Rebuild Project, 
File -> Invalidate Cache Restart 

在命令行中尝试过:

flutter clean 
flutter run
rm -Rf ~/.gradle/caches 

错误仍然存​​在。

【问题讨论】:

问题指向developer.android.com/studio/build/…,现在我们比较一下gradle和Android Studio的依赖关系。 【参考方案1】:

我遇到了同样的错误,我的 app build.gradle 有以下依赖项。

implementation 'com.google.android.material:material:1.2.1'
implementation "androidx.compose.ui:ui:$compose_version"

删除 ui 依赖后,它工作正常。原因是material依赖于ui。

【讨论】:

【参考方案2】:

冲突是由 gradle 中自动生成的 Kotlin 引用引起的。

从 gradle 配置文件中删除所有 Kotlin 条目足以让 flutter run 命令恢复正常

【讨论】:

以上是关于类型 project.com.project.MainActivity 被定义多次的主要内容,如果未能解决你的问题,请参考以下文章

c#中值类型和引用类型的区别

MySQl数据类型

值类型和引用类型

TS 基本类型分类any 类型

MySQL数据类型 - 数字类型 - 数字类型语法

js简单类型与复杂类型