Visual Studio 2022中Xamarin项目构建报错:com.android.tools.r8.CompilationFailedException
解决Xamarin项目构建时重复类定义的问题
这个错误的核心原因是项目依赖中包含了重复的Google Play Services Measurement库,导致编译时同一个com.google.android.gms.measurement.internal.zzai类在两个不同的classes.jar文件中被定义,R8编译器无法处理。直接编辑.class文件没有意义,因为这是编译后的字节码,必须从依赖管理层面解决:
清理构建缓存
- 关闭Visual Studio
- 删除项目根目录下的
obj和bin文件夹 - 重新打开项目并执行构建
统一NuGet包版本
- 打开Visual Studio的「NuGet包管理器」
- 搜索所有与
Xamarin.GooglePlayServices.Measurement相关的包 - 确保所有相关包的版本完全一致,不同版本的库会引入重复类
- 更新或降级到同一版本后,清理缓存再重新构建
排查间接依赖冲突
- 通过「管理解决方案的NuGet包」查看已安装的所有包
- 检查是否有第三方包间接引入了不同版本的Google Play Services Measurement库
- 若发现冲突,可在项目的
PackageReference中强制指定统一版本,示例:<PackageReference Include="Xamarin.GooglePlayServices.Measurement.Base" Version="18.0.1" />
调整Android构建配置
- 右键Android项目 → 属性 → 「Android选项」→ 「高级」
- 尝试暂时关闭「代码收缩(R8)」功能,验证是否是R8的处理逻辑导致的问题
- 如果关闭后能正常构建,再检查R8的规则文件是否需要添加排除重复类的配置
内容的提问来源于stack exchange,提问作者roguedev
相关产品推荐
相关产品推荐

