在 Xamarin Forms iOS 中启用 AppCenter 崩溃和分析时,本机链接失败,重复符号:“_cxa+throw”

Posted

技术标签:

【中文标题】在 Xamarin Forms iOS 中启用 AppCenter 崩溃和分析时,本机链接失败,重复符号:“_cxa+throw”【英文标题】:Native linking failed, duplicate symbol:"_cxa+throw" when enabling the AppCenter crash and analytics in Xamarin Forms iOS 【发布时间】:2020-04-06 13:35:54 【问题描述】:

在 App.xaml.cs 文件中启用 AppCenter 崩溃和分析时遇到以下错误,如下所示,

protected override void OnStart()

   AppCenter.Start("android=my secret code;" + "ios=my secret code", typeof(Analytics), typeof(Crashes));


如果对此代码发表评论,我没有收到任何错误。

本机链接失败。请查看构建日志。 链接器命令失败,退出代码为 1(使用 -v 查看调用) 重复符号在:/Users/macbook-02/Library/Caches/Xamarin/mtbs/builds/MyProject.iOS/fa397694646d06672e8f8c7f7683e7fe/obj/iPhoneSimulator/Debug/mtouch-cache/AppCenterCrashes.a(MSCrashesCXXExceptionHandler.o)错误) 重复符号在:/Users/macbook-02/Library/Caches/Xamarin/mtbs/builds/MyProject.iOS/fa397694646d06672e8f8c7f7683e7fe/obj/iPhoneSimulator/Debug/mtouch-cache/libHockeySDK.a(BITCrashCXXExceptionHandler.o)错误) 架构 x86_64 的 1 个重复符号 本机链接失败,重复符号:''___cxa_throw''。 本机链接失败。请查看构建日志。

我尝试通过以下链接中给出的答案来修复它,但这并不能解决我的问题,

Native linking failed, duplicate symbol: '_main' while adding native Binding Dll and Xamarin.Firebase.iOS.Database

https://github.com/xamarin/GoogleApisForiOSComponents/issues/111

【问题讨论】:

能否请您尝试将/Users/macbook-02/Library/Caches/Xamarin/ 移动到其他地方,看看是否仍然存在此错误? 【参考方案1】:

我认为您需要与whether adding the App Center SDK to your solution 进行检查。如果您已跟进,请记住在项目中添加参考:

using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;

然后清理您的项目并重建它。

【讨论】:

Junior Jiang - MSFT - 感谢您的回复。我仅通过参考此 docs.microsoft.com/en-us/appcenter/sdk/getting-started/… 文档来实现 AppCenter 崩溃和分析。而且我还在我的项目中添加了参考。但我仍然面临这个问题。 @GanesanVG Okey,您是否检查过当前版本的 Xamarin Forms 是否为最新版本。 我已经检查了 Xamarin.Forms 和 AppCenter 相关软件包的最新版本。但是,问题仍然存在。 @GanesanVG 你能分享一个应用中心功能的示例链接吗?我会在我的本地网站上查看。 Junior Jiang - MSFT - 它的大应用,不是一个简单的示例。抱歉,我无法分享我们的应用程序。【参考方案2】:

当本机链接器在所有本机库之间遇到重复符号时,就会发生这种情况。您可以在此处查看有关此错误的详细信息https://docs.microsoft.com/en-us/xamarin/ios/troubleshooting/mtouch-errors#mt5212-native-linking-failed-duplicate-symbol-。

【讨论】:

您的权利。我也检查了这些。但这也无法解决我的问题。【参考方案3】:

尝试在您的 iOS 项目属性中更改链接类型: 右键单击 iOS 项目 > 属性 在 iOS Build 选项卡中将 Linker Behavior 更改为 Link Framework SDKs Only

【讨论】:

以上是关于在 Xamarin Forms iOS 中启用 AppCenter 崩溃和分析时,本机链接失败,重复符号:“_cxa+throw”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xamarin.Forms 的 Grid 中启用边框

Xamarin.Forms 中iOS通过URL Scheme判断应用是否安装

条目渲染不在iOS Xamarin Forms中添加下划线

ZXingBarcodeImageView(二维码)在iOS上显示但在Android上没有显示(Xamarin.Forms)

修改UITabBar样式 TintColor 和 Selected Tab Images in Xamarin.Forms iOS

从Xamarin Forms中的iOS中的App.OnSleep弹出导航堆栈