You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI安卓应用启动报错:Gdip类型初始化异常如何解决?

解决.NET MAUI Android启动时Gdip类型初始化异常问题

1. 排查间接依赖的System.Drawing.Common

即便你没有直接引用该组件,第三方NuGet包可能间接引入了它:

  • 右键项目→管理NuGet程序包→已安装,搜索System.Drawing.Common,确认是否被依赖引入
  • 或在项目目录执行命令:dotnet list package,查看所有依赖项

若发现该包:

  • 优先升级依赖的第三方包到最新版本,多数适配MAUI的包已替换System.Drawing.Common的使用
  • 无法升级时,在项目.csproj中添加配置,强制禁用Android平台的该包引用:
<ItemGroup Condition="'$(TargetFramework)' == 'net7.0-android'">
  <PackageReference Include="System.Drawing.Common" Version="7.0.0" ExcludeAssets="all" />
</ItemGroup>

(版本号需匹配你的.NET MAUI版本)

2. 检查MAUI Android核心配置

MAUI内部用SkiaSharp替代GDI+,确保相关配置正确:

  • 确认已安装Microsoft.Maui.Graphics.Skia NuGet包(MAUI默认包含,若误删需重新安装)
  • 在MauiProgram.cs中确保初始化SkiaSharp:
builder.UseMauiApp<App>().UseSkiaSharp();

3. 清理项目缓存并重建

缓存损坏可能引发此类异常:

  • 删除项目目录下的bin和obj文件夹
  • 在Visual Studio中执行清理解决方案→重建解决方案,或终端运行:dotnet clean && dotnet build

4. 验证Android SDK版本兼容性

确保SDK版本与MAUI版本匹配:

  • 打开Visual Studio工具→Android→Android SDK管理器,安装对应版本的SDK(如.NET 7对应Android 33,.NET 8对应Android 34)
  • 检查.csproj中的TargetFramework配置,例如:<TargetFramework>net7.0-android33.0</TargetFramework>

5. 排查自定义渲染器/平台代码

若项目有自定义渲染器或Android特定代码:

  • 替换所有System.Drawing相关API为Microsoft.Maui.Graphics命名空间下的API(如用Canvas替代Graphics,Color替代System.Drawing.Color)
  • 替换第三方绘图库为MAUI兼容的方案(如SkiaSharp)

内容的提问来源于stack exchange,提问作者Rafael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:32:43