D8: Type com.******.******.BuildConfig is defined multiple times:

D8: Type com.******.******.BuildConfig is defined multiple times:

  • 一、介绍
  • 二、报错分析
  • 三、修改
  • 四、总结

一、介绍

这几天接入了一个GVoice的SDK,后来在出包安卓包的时候发现了一个问题,报错内如如下
E:\unityProject\GVoice\Temp\gradleOut\launcher\build\intermediates\project_dex_archive\release\out\com\yuanzhuokeji\voicetest\BuildConfig.dex: D8: Type com.yuanzhuokeji.voicetest.BuildConfig is defined multiple times: E:\unityProject\GVoice\Temp\gradleOut\launcher\build\intermediates\project_dex_archive\release\out\com\yuanzhuokeji\voicetest\BuildConfig.dex, E:\unityProject\GVoice\Temp\gradleOut\unityLibrary\GCloudVoice.androidlib\build.transforms\3657f24505d25e9bdd92f28ea61f7d3d\classes\classes.dex
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
Type com.yuanzhuokeji.voicetest.BuildConfig is defined multiple times: E:\unityProject\GVoice\Temp\gradleOut\launcher\build\intermediates\project_dex_archive\release\out\com\yuanzhuokeji\voicetest\BuildConfig.dex, E:\unityProject\GVoice\Temp\gradleOut\unityLibrary\GCloudVoice.androidlib\build.transforms\3657f24505d25e9bdd92f28ea61f7d3d\classes\classes.dex
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.

二、报错分析

看这里的问题主要是com.yuanzhuokeji.voicetest被定义了多次,从而导致了打包报错。
看自己的工程一般定义这种都是在AndroidManifest.xml中定义多次或者跟自己打包的签名写的一致造成的

如下是包名这块的定义
D8: Type com.******.******.BuildConfig is defined multiple times:_第1张图片
如下是AndroidManifest.xml文件
D8: Type com.******.******.BuildConfig is defined multiple times:_第2张图片
从上面这两个图中发现SDK中的AndroidManifest.xml文件中的引用被修改了,所以导致了上述的报错。

三、修改

接入SDK的时候里面的AndroidManifest.xml文件中的package定义不能改动,这里可能是关于jar包是否能正常解析的定义,所以拿到sdk的时候AndroidManifest.xml文件是不需要修改的,除非你要合并多个AndroidManifest.xml,否则尽量不要东这个文件。

四、总结

上述是我在接入SDK时,误操作修改了AndroidManifest.xml文件导致的打包报错,希望能够给大家带来帮助,感谢大家的支持。

你可能感兴趣的:(包名重复报错,Unity,BuildConfig,安卓打包报错,unity打包问题)