类型 BuildConfig 被多次定义

我正在开发一个多模块的 Android 应用程序,所有东西都在调试模式下工作,但是现在当我尝试构建一个发布包时,我收到了这个错误:

Type ***module1.BuildConfig is defined multiple times:
***/module1/build/intermediates/runtime_library_classes/release/classes.jar:***/module1/BuildConfig.class,
***/module2/build/intermediates/runtime_library_classes/release/classes.jar:***/module1/BuildConfig.class

这是我第一次看到这样的错误,我不知道如何修复这个问题,甚至不知道是什么导致了它。据我所知,库模块甚至不应该在发布模式下生成 BuildConfig 文件。

57855 次浏览

检查两个模块是否具有相同的包名称

重建应用程序为我解决了这个问题。

如果重建没有解决这个问题,检查这个: https://developer.android.com/studio/build/dependencies#duplicate_classes

我在 MacOS 上使用 Android Studio 4.0.1

在项目 app文件夹中的网络驱动器上,我搜索了 BuildConfig

我注意到生成了一个 BuildConfig 2.class文件。

我删除了 BuildConfig 2.class文件,重建,重新运行,一切正常。

更新

我遇到了出现 BuildConfig 3.class的情况,所以现在我通过 Config (Config + space)进行搜索

更新2

每次运行时都会出现这个问题。现在我不再删除文件,而是使用菜单项

"Build"->"Clean Project"

然后重新运行应用程序。

对于我来说,将以下行添加到 android/app/build.gradle的以下部分很有帮助:

dependencies {
...
implementation(project(':react-native-jitsi-meet')) {
...
exclude group: 'com.facebook.react',module:'react-native-linear-gradient' // <<<---- this line was added
}
}

在升级了对 android 项目的 Firebase 项目级别依赖之后,我得到了这个错误

classpath 'com.google.firebase:perf-plugin:1.3.4'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1'

为了解决我的错误,我更新了以上

classpath ('com.google.firebase:perf-plugin:1.3.4') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1'

转到项目文件夹并删除构建/中间件

  1. App/build/中间件删除此文件夹
  2. 使缓存无效并重新启动
  3. 重新启动-重建并运行

对我有用

 buildTypes {
debug {
buildConfigField "String", "BaseApi", "\"https://{apiUrlDebug}\""


}
release {
signingConfig signingConfigs.release
buildConfigField "String", "BaseApi", "\"https://{apiUrlRelease}\""
 

zipAlignEnabled true
minifyEnabled true
shrinkResources true
pseudoLocalesEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
lintOptions {


checkReleaseBuilds false
abortOnError false
}
}
}

单击 Build-> Clean Project

对我来说唯一有效的解决方案是删除我主文件夹(mac osx)中的 ~/. gradle 文件夹。

编辑: 过了一会儿,这种情况又发生了——所以我删除了整个项目,并从 github 上再次克隆了它。完全解决了这个问题,再也不会发生了。

我的 Android 清单对于两个不同的模块有相同的软件包名称。

类型 com.e.pacakgename. MainActivity 被多次定义。

我也遇到了这个错误,在我的项目中有2个 MainActivity 文件。

删除一个文件后,错误就解决了。

对我来说, 我有一个多模块的项目,也得到了同样的问题。 我检查了所有的货单和包裹名称其中包含了另一个的副本。 我找到了副本,并重命名了一个包和清单包的名称,做了一个 Build-> Clean Project,现在问题解决了!

  • 检查重复包装,清单条目
  • 尝试使缓存失效,清除生成,重新生成项目
  • 尝试删除. gradle 目录并重新生成项目。

很可能共享的 AndroidManifest.xml 和 androidApp AndroidManifest.xml 都具有相同的 packageId。他们必须与众不同。例如,com.my.app.share 和 com.my.app.android

我使用的是 Android Studio 4.1.2,下面这些对我很有用: 打开生成-> 重建项目。

对于那些像我一样寻找的人: (,这工作。我有 JitsiMeet,这就是原因,发生这种事。我在 Jitsimeet 回收站找到的。

在 app/build.gradle 上:

implementation(project(':react-native-jitsi-meet')) {
exclude group: 'com.facebook.react',module:'react-native-google-signin'
}