.NET 8 MAUI项目编译报错:‘类型被多次定义’求助
解决“androidx.activity.ActivityViewModelLazyKt$viewModels$2 类重复定义”编译错误
以下是针对这个编译错误的实用解决步骤:
排查依赖版本冲突
这个错误核心是项目重复引入了不同版本的androidx.activity相关依赖。打开NuGet包管理器,查看已安装的包,重点检查Xamarin.AndroidX.Activity(或.NET MAUI对应的activity包)的版本,确保所有直接/间接依赖的该包版本完全一致。强制统一依赖版本
如果发现间接依赖导致版本不一致,直接在项目的.csproj文件中添加强制版本配置,锁定androidx.activity的版本:<PropertyGroup> <!-- 替换为你项目适配的稳定版本号 --> <PackageVersion Include="Xamarin.AndroidX.Activity" Version="1.8.2" /> </PropertyGroup>深度清理并重新还原依赖
除了手动删除bin/obj文件夹,执行以下命令彻底清理缓存并重新还原依赖:dotnet clean dotnet restore排查新增页面的引入依赖
由于错误是新增页面后出现的,逐一移除新增页面中引入的第三方NuGet包,每次移除后尝试编译,定位到引发冲突的包,再查看该包的依赖树,调整其版本或替换为无冲突的替代包。调整Android打包压缩配置
若项目启用了ProGuard或R8代码压缩,可尝试暂时关闭这些功能,看是否解决冲突;如果必须启用,在ProGuard配置文件中添加规则排除重复类:-dontwarn androidx.activity.ActivityViewModelLazyKt -keep class androidx.activity.ActivityViewModelLazyKt { *; }
内容的提问来源于stack exchange,提问作者still-got-the-t-shirt
相关产品推荐
相关产品推荐

