【问题标题】:Got a SIGABRT while executing native code xamarin.ios执行本机代码 xamarin.ios 时收到 SIGABRT
【发布时间】:2020-02-01 04:06:35
【问题描述】:

我已经构建了一个 xamarin.ios 应用程序。该应用程序一直运行良好。没有代码更改并且出乎意料的是,该应用程序现在在访问相机时崩溃了。我不知道为什么会发生这种情况,有人可以解释这个问题吗?我已经围绕这个错误进行了谷歌搜索并尝试了各种方法,包括删除各种包。我最近更新到 ios 10,但更新后应用程序仍然可以正常工作。错误如下:

2016-10-10 21:44:28.925 Coacher[307:24128] 严重:本机 堆栈跟踪:

2016-10-10 21:44:28.934 教练 [307:24128] 严重:0
libmonosgen-2.0.dylib 0x00363d33 mono_handle_native_sigsegv + 242 2016-10-10 21:44:28.934 Coacher[307:24128] 严重:1 libsystem_platform.dylib
0x1db5326d _sigtramp + 24 2016-10-10 21:44:28.935 教练[307:24128] 关键:2 libsystem_kernel.dylib 0x1da9fd8f + 64 2016-10-10 21:44:28.935 教练 [307:24128] 关键: 3 libsystem_kernel.dylib 0x1da9fdd9 system_set_sfi_window + 0 2016-10-10 21:44:28.935 教练[307:24128] 关键:4 TCC 0x201a8e85 + 228 2016-10-10 21:44:28.936 教练 [307:24128] 关键: 5 TCC 0x201a8da1 + 0 2016-10-10 21:44:28.936 教练 [307:24128] 关键:6 TCC
0x201ab57b + 276 2016-10-10 21:44:28.936 教练[307:24128] 关键:7 libxpc.dylib 0x1db8915f + 46 2016-10-10 21:44:28.937 教练 [307:24128] 关键: 8 libxpc.dylib 0x1db89101 + 26 2016-10-10 21:44:28.937 教练[307:24128] 关键:9
libdispatch.dylib 0x1d9ae49b + 604 2016-10-10 21:44:28.937 教练 [307:24128] 关键:10 libdispatch.dylib 0x1d9afa91 + 378 2016-10-10 21:44:28.938 教练 [307:24128] 关键:11 libdispatch.dylib 0x1d9af8b7 + 106 2016-10-10 21:44:28.938 教练 [307:24128] 关键:12 libsystem_pthread.dylib 0x1db55947 _pthread_wqthread + 1168 2016-10-10 21:44:28.938 教练 [307:24128] 关键:13 libsystem_pthread.dylib 0x1db5549c start_wqthread + 8 2016-10-10 21:44:28.939 教练 [307:24128] 关键: ==================================================== =============== 执行本机代码时收到 SIGABRT。这通常表示致命 单声道运行时或您使用的本机库之一中的错误

应用程序。

【问题讨论】:

    标签: xamarin xamarin.ios sigabrt


    【解决方案1】:

    这是因为您的 iOS 10 更新。您现在需要请求相机的权限。以下博文介绍了如何立即设置这些权限。

    https://devblogs.microsoft.com/xamarin/new-ios-10-privacy-permission-settings/

    从 iOS 10 开始,几乎所有需要请求授权的 API 和其他 API,例如打开相机或照片库,都需要一个新的键值对来描述它们在 Info.plist 中的用法。这与使用 Geolocation 和 iBeacon API 时将 NSLocationWhenInUseUsageDescription 或 NSLocationAlwaysUsageDescription 放入 Info.plit 的要求非常相似。现在的不同之处在于,当应用程序在未设置这些密钥的情况下尝试授权时,应用程序将崩溃。

    【讨论】:

    • 哇非常感谢!!!!你真的救了我的培根。我不知道我必须这样做,错误不清楚问题是什么。谢谢!!!
    • 我这里还有一个问题,我想录制带音频的视频,所以我同时添加了 NSCameraUsageDescription 和 NSMicrophoneUsageDescription。该应用程序请求访问相机然后崩溃,如果我重新打开该应用程序,它会要求访问音频并正常工作。如何请求这两个权限?
    • 嗯不确定是否可以先请求麦克风然后启动相机?没有代码现在很难说。我也必须四处寻找并搜索文档。也可以添加NSPhotoLibraryUsageDescription。抱歉,我还没有在生产中使用它。
    • 不用担心 Sven-Michael Stube,问题现在解决了。感谢您的帮助!
    • 所以我基于这个developer.xamarin.com/samples/monotouch/AVCam 的代码这工作正常,但更新到iOS10 后停止工作。在我请求 info.plist 中的信息后,它再次开始工作,但在第一次加载时崩溃了。而不是弄清楚为什么我只使用了 AVCam 示例的更新版本,可以在此处找到。 developer.xamarin.com/samples/monotouch/ios10/AVCam我怀疑问题是代码中请求权限的顺序
    猜你喜欢
    • 1970-01-01
    • 2018-09-14
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多