. net MAUI app + MediaPicker与Android.Content.Res.Resources+N



在我的。net MAUI应用程序中,我使用内置的MediaPicker来访问用户的照片。在我点击图标访问照片之前,这款应用一直运行良好。然后它崩溃并显示以下错误消息:

Android.Content.Res。资源+ NotFoundException消息=可拉的com.mycompany。myapp:mipmap/appicon with resource ID #0x7f0d0000

我最近确实更换了应用程序图标,我也注意到当我在实际设备上运行应用程序时,应用程序没有使用它。我只是把一个新的svg文件放在Resources/AppIcon文件夹中,与原来的名称相同,即appicon.svg

在该文件的属性中,我将其设置为MAUIICON

项目文件中的内容:

<!-- App Icon -->
<MauiIcon Include="ResourcesAppIconappicon.svg" />

以防万一,这是有帮助的,这就是我如何使用MediaPicker:

try
{
var result = await MediaPicker.PickPhotoAsync(new MediaPickerOptions
{
Title = "Pick Image"
});
if (result == null)
return;
}
catch(Exception e)
{
// Log error
}

我从来没有击中catch块。它只是崩溃,并显示我上面提到的错误信息。

你知道如何解决这个问题吗?

问题肯定是AppIcon。看起来。net MAUI没有从svg生成我在ResourcesAppIcon下的正确大小的图标。

解决方法是手动创建必要的图标——在我的例子中,我只创建了一个72x72的图标——并将它们放在PlatformsAndroidResourcesmipmap文件夹中。在我的例子中,Resources文件夹在PlatformsAndroid下,所以我只需要创建mipmap文件夹。

然后我必须进入AndroidManifest.xml文件并正确链接它们:

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true"></application>

所以,在我的情况下,我手动生成的应用程序图标的文件名是ic_launcher.png。我必须有第二个图像命名为ic_launcher_round.png

看起来。net MAUI应该做这项工作,但它没有做。

第二个好处是,当我现在在设备上安装应用程序时,我看到了我的应用程序的正确应用图标。

这是我报告的问题的链接。任何遇到这个问题的人都应该投票给它,这样它就会得到团队的关注。https://developercommunity.visualstudio.com/t/Changing-app-icon-of-NET-MAUI-app-then/10090581

相关内容