【发布时间】:2017-05-21 01:18:03
【问题描述】:
我的Xamarin Android 应用程序需要弹出图库,以便用户可以选择现有照片,在这种情况下,我再次保存所选图像的 URI。
在我的一个测试用户拥有的 Galaxy S5 上,它每次都崩溃。但它在我更便宜/更旧的华为测试手机上运行良好。
我正在使用 Azure Mobile Center 进行崩溃报告,我在错误日志中看到了这一点。从 Galaxy S5 实时调试时,我还看到直接从 Visual Studio 中抛出此错误...
Intent 必须包含一个明确的包名来构建一个 android-app: 意图 { dat=content://media/external/images/media/4238 flg=0x1 VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} (有额外的)}
这是我创建从图库中选择的意图的方法:
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 版本崩溃了?它们都一样吗? (即 API 21?)
-
从我在 Azure Mobile Center 中看到的,主要设备是“SM-G930F”(Galaxy S7?)所以我认为它真的是新的,即版本 23?
-
拍照或选择照片后应用崩溃?每次应用崩溃时,您是否也会遇到相同的错误?
-
你试过用 Intent.ActionGetContent 代替 Intent.ActionPick 吗?
-
检查是否有相机应用程序可用于处理此意图,即执行 intent.ResolveActivity(packageManager) != null 如果没有,那么我建议预安装一个好的相机应用程序来处理像 opencamera 这样的意图跨度>
标签: android-intent xamarin crash xamarin.android