C# 在xamarin.forms中拍照后手机挂起
所以我一直在开发一个xamarin.forms移动应用程序,其中一部分是envolves拍照,它一直工作正常,但昨天拍照后手机突然挂起,当时没有新的代码更改 这是一个xamarin.forms项目,仅针对android,在pie 9.0 API 28上运行VS2019内置仿真器 我花了很多时间试图解决这个问题,但我对移动开发非常陌生,我不知道原因是什么,似乎有什么东西正在用新的分配充斥着育儿室的记忆,但我一辈子都不知道是什么或为什么,一旦拍摄并接受了图像,控制台就会开始充斥这个:C# 在xamarin.forms中拍照后手机挂起,c#,android,xamarin.forms,C#,Android,Xamarin.forms,所以我一直在开发一个xamarin.forms移动应用程序,其中一部分是envolves拍照,它一直工作正常,但昨天拍照后手机突然挂起,当时没有新的代码更改 这是一个xamarin.forms项目,仅针对android,在pie 9.0 API 28上运行VS2019内置仿真器 我花了很多时间试图解决这个问题,但我对移动开发非常陌生,我不知道原因是什么,似乎有什么东西正在用新的分配充斥着育儿室的记忆,但我一辈子都不知道是什么或为什么,一旦拍摄并接受了图像,控制台就会开始充斥这个: 11-07 1
11-07 10:08:21.691 I/.co.lilleker_i(16426): Explicit concurrent copying GC freed 8770(448KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 1623KB/3MB, paused 617us total 5.821ms
11-07 10:08:21.695 D/Mono (16426): GC_TAR_BRIDGE bridges 1439 objects 1439 opaque 0 colors 1439 colors-bridged 1439 colors-visible 1439 xref 0 cache-hit 0 cache-semihit 0 cache-miss 0 setup 0.04ms tarjan 0.20ms scc-setup 0.14ms gather-xref 0.15ms xref-setup 0.02ms cleanup 0.06ms
11-07 10:08:21.695 D/Mono (16426): GC_BRIDGE: Complete, was running for 15.62ms
11-07 10:08:21.695 D/Mono (16426): GC_MINOR: (Nursery full) time 3.80ms, stw 4.91ms promoted 158K major size: 1680K in use: 912K los size: 1024K in use: 208K
这种情况每半秒钟发生一次,应用程序将变得无响应,我已禁用在此之后运行的所有其他代码,因此仅运行以下方法:
private async Task<Byte[]> GetPhoto()
{
try
{
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
await DisplayAlert("No Camera", ": (No Camera available.", "OK");
return null;
}
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
if (file == null)
return null;
await DisplayAlert("File Location", file.Path, "OK");
return null;
}
catch(Exception ex)
{
string m = ex.Message;
return null;
}
}
但我似乎不知道这到底意味着什么。任何帮助都将不胜感激。好的,在被问及一个示例项目后,我创建了一个新项目,并使用了精确的代码,但突然发现它没有这个问题。我花了一些时间试图看看有什么不同,但注意到新创建的项目已经更新了xamarin.forms和xamarin.essentials包
在使用nuget进行了大量修改之后,我成功地将我的应用程序升级为使用Xamarin.Essentials 1.2.0和Xamarin.Forms 4.2.0.709249(与新项目模板使用的相同)现在问题已经解决。尝试删除共享项目和Android项目中的文件夹
bin
和obj
。然后清理并重建它。不幸的是,这没有帮助。感谢您的代码提供的建议,方法GetPhoto()
似乎总是返回null,即使文件不是null值。这是正确的,它最初将照片转换为字节数组以发送到web api,但我在试图找出问题的原因时删除了该部分代码。您能否共享一个包含问题的示例,我将在我这边进行检查。您可以接受您的答案,这将帮助更多人。
type=1400 audit(0.0:1494): avc: denied { link } for comm=54687265616420506F6F6C20576F72 name="PropertyStore.forms.tmp" dev="dm-1" ino=123214 scontext=u:r:untrusted_app:s0:c96,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c96,c256,c512,c768 tclass=file permissive=0