由于我的iPhone模拟器没有摄像头,因此无法在我的模拟器上对其进行调试。但是我有一个物理设备,但是,使用这些愚蠢的配置文件,我只能将发布版本发送到我的实际iPhone 7,这意味着它不会返回调试信息。
然而,在TRY CATCH的帮助下,我能够确定实际iPhone何时崩溃:它是这样一行代码:
file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
整个代码如下所示:
await CrossMedia.Current.Initialize();
Plugin.Media.Abstractions.MediaFile file = null;
try
{
file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
}
catch
{
await DisplayAlert("1", ":( No camera available.", "OK");
}
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
await DisplayAlert("No Camera", ":( No camera available.", "OK");
return;
}
if (file == null)
return;
由于它在这里遇到了 catch 块,我知道是 abolev 行抛出了错误。
这是詹姆斯·蒙塔马尼奥插件。
你们能在这里帮我吗?这可能是权限问题吗?
谢谢!
将其添加到 info.plist:
<key>NSCameraUsageDescription</key>
<string>This app needs access to the camera to take photos.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app needs access to photos.</string>
解决了问题!