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

.NET MAUI项目中部分PNG图片编译失败,报APT2098/APT2261错误

.NET MAUI Android编译PNG报错APT2261/APT2098的排查与解决

问题现象

  • 编译.NET MAUI项目时,部分同目录结构的PNG图片编译失败:orca_composer_divider_horizontal.9.png报APT2261错误,同时触发APT2098错误,提示无法打开drawable-hdpi-v4_orca_composer_divider_horizontal.9.png.flat文件
  • 特定目录下所有图片均编译失败:net7.0-android\lp\106\jl\res\drawable-hdpi-v4
  • 同层级其他目录(如net7.0-android\lp\333\jl\res\drawable-hdpi-v4)下的图片无异常
  • 已排查项:PNG文件头正常、图片尺寸无异常、文件名无特殊字符

排查与修复步骤

1. 清理构建缓存

  • 删除项目根目录下的bin和obj文件夹
  • 删除Android本地构建缓存:%USERPROFILE%\AppData\Local\Xamarin\zips、%USERPROFILE%\AppData\Local\Xamarin\Android\Cache
  • 执行命令:dotnet clean → dotnet build

2. 验证9-Patch图片合法性

  • 若失败图片是.9.png格式,用Android Studio的Draw 9-patch工具打开,确认边缘是否有完整的黑色标记线(合法9-Patch图的必要标识)
  • 若为普通PNG误命名,直接去掉文件名中的.9后缀
  • 若标记线断裂或超出图片范围,重新编辑修复后再编译

3. 检查资源配置

  • 确认失败图片的Build Action设置为AndroidResource
  • 打开.csproj文件,检查资源项是否有异常配置(如错误的LogicalName或Link属性),示例正确配置:
    <ItemGroup>
      <AndroidResource Include="Resources\drawable-hdpi\orca_composer_divider_horizontal.9.png" />
    </ItemGroup>
    

4. 排查依赖库问题

  • lp\106对应项目中的某个依赖库,可能该库的资源打包存在问题:
    • 定位lp\106对应的NuGet包,尝试更新至最新版本
    • 临时移除该依赖,验证编译是否恢复正常,确认是否为依赖库本身的问题
    • 若为自定义库,检查库内资源的打包配置,确保9-Patch图片格式合规

5. 调整编译参数

  • 在.csproj中添加配置,关闭APT图片压缩功能(可排除压缩过程中的格式兼容问题):
    <PropertyGroup>
      <AndroidUseAapt2>True</AndroidUseAapt2>
      <AndroidAapt2CompileExtraArgs>--no-crunch</AndroidAapt2CompileExtraArgs>
    </PropertyGroup>
    
    注:该参数会增加APK体积,问题解决后可按需移除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:47:35