当我尝试使用Xamarin.Essentials的FilePicker类时,我的应用程序关闭且未引发任何异常。
我做了什么:
添加: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
和代码:
async Task<FileResult> PickAndShow(PickOptions options)
{
try
{
var result = await FilePicker.PickAsync();
if (result != null)
{
Text = $"File Name: {result.FileName}";
if (result.FileName.EndsWith("jpg", StringComparison.OrdinalIgnoreCase) ||
result.FileName.EndsWith("png", StringComparison.OrdinalIgnoreCase))
{
var stream = await result.OpenReadAsync();
Image = ImageSource.FromStream(() => stream);
}
}
}
catch (Exception ex)
{
// The user canceled or something went wrong
}
}
我正在使用VS for MacOS。
关闭应用程序的视频:https : //drive.google.com/file/d/1H1488amryi_p7mkg7JdmhcGAE569KON4/view?usp=sharing
请帮我看看我丢失了什么?
编辑:
发生错误的行 var result = await FilePicker.PickAsync();
例外:
没有异常被抛出;
应用程序出口:
[Mono]正在请求加载Xamarin.Essentials.dll的参考5(共8个)[Mono]正在加载Xamarin.Essentials.dll asmctx的参考5(默认),查找System.Core,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e [Mono]组件ref addref Xamarin.Essentials [0x7ddc93de80]-> System.Core [0x7d850f7880]:10 [Choreographer]跳过了711帧!该应用程序可能在其主线程上做太多工作。[OpenGLRenderer]戴维!持续时间= 12935ms; 标志= 0,IntendedVsync = 24578200518089,Vsync = 24591127790687,OldestInputEvent = 9223372036854775807,NewestInputEvent = 0,HandleInputStart = 24591131789208,AnimationStart = 24591131799939,PerformTraversalsStart = 24591132369131,DrawStart = 24591132532323,SyncQueued = 24591132591,SyncQueued = 24591132591 24591134886554,
一个第二日志中的设备:
不便之处,敬请原谅。罪魁祸首是我的不良行为。也不例外,因为确实没有。问题是,当您打开文件时,该应用程序在后台启动,在我的代码中,我有:
public static void Background()
{
activity.MoveTaskToBack(true);
}
我已经忘记了。在其他情况下,我仍然需要这样做,因此我通过以下方式解决了问题:
public static void Background()
{
if (App.Current.importClicked) App.Current.importClicked = false;
else activity.MoveTaskToBack(true);
}
我再次道歉。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句