gpt4 book ai didi

android-intent - Xamarin Android 应用程序崩溃并显示 "Intent must include an explicit package name to build an android-app"

转载 作者:行者123 更新时间:2023-12-02 00:02:48 27 4
gpt4 key购买 nike

我的 Xamarin Android 应用需要弹出图库,以便用户可以选择现有照片,在这种情况下,我再次保存所选图像的 URI。

在我的一个测试用户拥有的 Galaxy S5 上,它每次都会崩溃。但它在我更便宜/旧的华为测试手机上运行良好。

我正在使用 Azure 移动中心进行崩溃报告,并且我在错误日志中看到了这一点。当从 Galaxy S5 进行实时调试时,我还看到 Visual Studio 中直接抛出此错误...

Intent must include an explicit package name to build an android-app: Intent { dat=content://media/external/images/media/4238 flg=0x1 VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} (has extras) }

这是我创建从图库中选择的意图的方法:

    public void HandleRecord(object sender, EventArgs ea)
{
...
//Choose from gallery
else if (args.Which == 1)
{
var intent = new Intent(Intent.ActionPick);
intent.SetType("image/*");
this.StartActivityForResult(Intent.CreateChooser(intent, "Select Picture"), SELECT_FILE);
}
}
}

代码在我的 OnActivityResult 方法中的这一行崩溃了...

 if (requestCode == SELECT_FILE)
{
ImageUri = Android.Net.Uri.Parse(data.ToUri(IntentUriType.AndroidAppScheme));

最佳答案

天哪,找到了。在 API 23+ 上,我必须在声明“从图库中选择图像”选项的意图时添加这行代码:

intent.SetPackage("com.android.gallery");

所以整体代码变成:

                    var intent = new Intent(Intent.ActionGetContent );
intent.SetType("image/*");
intent.SetPackage("com.android.gallery");
this.StartActivityForResult(Intent.CreateChooser(intent, "Select Picture"), SELECT_FILE);

我永远不会明白为什么在声明 Intent.ActionPick 类型后我需要这样做,但是嘿它有效并且不再抛出错误。

关于android-intent - Xamarin Android 应用程序崩溃并显示 "Intent must include an explicit package name to build an android-app",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41502956/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com