C# 在xamarin.forms中拍照后手机挂起

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

所以我一直在开发一个xamarin.forms移动应用程序,其中一部分是envolves拍照,它一直工作正常,但昨天拍照后手机突然挂起,当时没有新的代码更改

这是一个xamarin.forms项目,仅针对android,在pie 9.0 API 28上运行VS2019内置仿真器

我花了很多时间试图解决这个问题,但我对移动开发非常陌生,我不知道原因是什么,似乎有什么东西正在用新的分配充斥着育儿室的记忆,但我一辈子都不知道是什么或为什么,一旦拍摄并接受了图像,控制台就会开始充斥这个:

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