修改包名引发BuildConfig重复定义错误的问题排查
解决Unity导出Android项目包名冲突与Dex合并错误
问题根源
你错误修改了unityLibrary模块的包名,导致它与主模块launcher生成了同路径的BuildConfig类,Dex合并时出现重复定义错误。Google Play只识别主模块(launcher)的applicationId,完全不需要修改unityLibrary的包名。
分步解决
恢复unityLibrary的包名
打开unityLibrary/src/main/AndroidManifest.xml,把包名改回默认的com.unity3d.player,不要与launcher的包名一致。确认主模块的applicationId
打开launcher/build.gradle(注意是Module级别的gradle文件,不是Project级别的),在defaultConfig块中确保applicationId是你要上传到Google Play的正确包名:android { defaultConfig { applicationId "com.yourcompany.yourappname" // 这里填你的目标包名 // 其他配置... } }Google Play审核时只认这个
applicationId,和unityLibrary的包名无关。清理构建缓存并重新打包
之前修改包名生成的缓存文件会自动重建,必须彻底清理:- 在Android Studio的Terminal中执行:
./gradlew clean - 清理完成后,重新生成签名应用包即可。
- 在Android Studio的Terminal中执行:
额外说明
Unity导出的Android项目中,unityLibrary是依赖库模块,它的代码、资源和Native库都绑定了默认包名com.unity3d.player,强行修改会引发更多类引用错误,完全没必要这么做。只要主模块的applicationId正确,就能正常上传到Google Play。
内容的提问来源于stack exchange,提问作者HollyC
相关产品推荐
相关产品推荐

