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

MAUI Android应用图标尺寸异常(裁剪/过大)求助

MAUI Android应用图标裁剪/尺寸异常问题解决

问题现象

配置MAUI Android应用图标时,图标显示异常,存在裁剪且尺寸过大,但iOS端显示正常。

项目配置信息

csproj配置

<ItemGroup>
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appicon.svg" BaseSize="48,48" Color="#ffffff" />
</ItemGroup>

AndroidManifest配置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.XXXXX" android:versionName="110.0" android:versionCode="110">


    <application android:allowBackup="true" android:supportsRtl="true" android:label="Leafwords" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round">

        <service android:name="communityToolkit.maui.media.services" android:exported="false" android:enabled="true" android:foregroundServiceType="mediaPlayback">
            <intent-filter>
                <action android:name="android.intent.action.MEDIA_BUTTON" />
            </intent-filter>
            <intent-filter>
                <action android:name="androidx.media3.session.MediaSessionService"/>
            </intent-filter>
        </service>

    </application>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-feature android:name="android.hardware.location" android:required="false" />
    <uses-feature android:name="android.hardware.location.gps" android:required="false" />
    <uses-feature android:name="android.hardware.location.network" android:required="false" />
    <queries>
        <intent>
            <action android:name="android.intent.action.SENDTO" />
            <data android:scheme="mailto" />
        </intent>
    </queries>
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" />
</manifest>

显示效果

Android端图标

Android端图标

iOS端图标

iOS端图标

解决方案

1. 修正MauiIcon配置

当前MauiIcon同时设置Include和ForegroundFile为同一个SVG文件,会导致MAUI生成Android图标时尺寸计算错误。建议调整为:

<ItemGroup>
<!-- 无需背景色时直接使用单图标 -->
<MauiIcon Include="Resources\AppIcon\appicon.svg" BaseSize="48,48" />
<!-- 需要背景色时拆分前景/背景文件 -->
<!-- <MauiIcon Include="Resources\AppIcon\appicon_background.svg" ForegroundFile="Resources\AppIcon\appicon_foreground.svg" BaseSize="48,48" Color="#ffffff" /> -->
</ItemGroup>

2. 检查SVG文件的ViewBox

确保appicon.svg包含正确的viewBox属性(如viewBox="0 0 1024 1024"),MAUI依赖该属性完成图标缩放。缺失ViewBox会导致Android端尺寸异常。

3. 符合Android图标规范

调整SVG内容位置:将图标主体放在画布中心,四周保留10%-20%的安全边距,避免圆形图标被系统裁剪。

4. 强制重新生成图标

  • 删除项目下的obj和bin目录
  • 重启开发工具
  • 重新构建项目

5. 验证AndroidManifest配置

可暂时移除android:roundIcon="@mipmap/appicon_round"属性测试,排查圆形图标资源是否存在生成异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:05:23