由于我的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行引发了错误。
这是james montamagno插件。
你们可以帮我吗?可能是权限问题吗?
谢谢!
答案 0 :(得分:1)
将此添加到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>
解决了问题!