Xamarin.Forms添加Xamarin.Firebase.Analytics遇兼容错误求助
尝试为Xamarin.Forms(版本5.0.0.2545)应用添加Xamarin.Firebase.Analytics包时,出现以下错误:
Package Xamarin.Firebase.Analytics.Impl 116.3.0.7 is not compatible with netstandard2.0 (.NETStandard,Version=v2.0). Package Xamarin.Firebase.Analytics.Impl 116.3.0.7 supports: - monoandroid12.0 (MonoAndroid,Version=v12.0)
已在Xamarin.Android项目的AndroidManifest.xml中设置android:targetSdkVersion="33",请问还需要修正哪些设置才能解决该问题?
环境信息
Visual Studio Community 2022 for Mac Version 17.4.3 (build 21) Runtime .NET 6.0.12 (64-bit) Architecture: Arm64 Roslyn (Language Service) 4.4.0-6.22578.12+3c6ab8e1715e5b080fb7bb77070810ab71e09387 NuGet Version: 6.3.1.1 .NET SDK (Arm64) SDK: /usr/local/share/dotnet/sdk/7.0.102/Sdks SDK Versions: 7.0.102 7.0.101 6.0.405 6.0.404 6.0.402 6.0.302 6.0.301 MSBuild SDKs: /Applications/Visual Studio.app/Contents/MonoBundle/MSBuild/Current/bin/Sdks .NET SDK (x64) SDK Versions: 6.0.405 6.0.404 6.0.402 6.0.302 6.0.106 6.0.104 5.0.408 5.0.407 3.1.426 3.1.424 3.1.421 3.1.420 3.1.418 .NET Runtime (Arm64) Runtime: /usr/local/share/dotnet/dotnet Runtime Versions: 7.0.2 7.0.1 6.0.13 6.0.12 6.0.10 6.0.7 6.0.6 .NET Runtime (x64) Runtime: /usr/local/share/dotnet/x64/dotnet Runtime Versions: 6.0.13 6.0.12 6.0.10 6.0.7 6.0.6 6.0.4 5.0.17 5.0.16 3.1.32 3.1.30 3.1.27 3.1.26 3.1.24 Xamarin Designer Version: 17.4.0.136 Hash: d49c9ff6d3 Branch: remotes/origin/d17-4 Build date: 2023-01-12 17:32:30 UTC Xamarin.Profiler Version: 1.8.0.19 Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler Updater Version: 11 Apple Developer Tools Xcode 14.2 (21534) Build 14C18 Xamarin.Mac not installed. Can't find /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/Version. Xamarin.iOS Version: 16.1.1.27 (Visual Studio Community) Hash: 933c6c2c9 Branch: xcode14.1 Build date: 2022-11-22 02:00:37-0500 Xamarin.Android Version: 13.1.0.1 (Visual Studio Community) Commit: xamarin-android/d17-4/13ba222 Android SDK: /Users/user/Library/Developer/Xamarin/android-sdk-macosx Supported Android versions: 8.0 (API level 26) 6.0 (API level 23) 12.0 (API level 31) 8.1 (API level 27) 11.0 (API level 30) 10.0 (API level 29) 7.1 (API level 25) 9.0 (API level 28) 13.0 (API level 33)
错误提示说明Xamarin.Firebase.Analytics.Impl 116.3.0.7仅支持monoandroid12.0,但你的.NET Standard共享项目(Xamarin.Forms核心项目)尝试引用了这个仅支持Android平台的包,导致兼容性冲突。需按以下步骤调整:
仅在Xamarin.Android项目中安装Firebase包:不要在.NET Standard共享项目中添加
Xamarin.Firebase.Analytics,仅将其安装到Android平台项目中。后续通过Xamarin.Forms的依赖服务(Dependency Service)在共享项目中调用Android平台的Firebase Analytics功能。匹配Android项目的目标框架版本:
- 右键Xamarin.Android项目 → 选择「选项」
- 进入「常规」→「应用程序」设置页
- 将「目标框架」设置为**Android 12.0 (API 31)**或更高(你的环境支持到API 33,可直接选择Android 13.0)
注:monoandroid12.0对应Android API 31,项目目标框架版本必须匹配或高于这个版本才能兼容该包。
尝试更新NuGet包版本:如果你的Android项目目标框架是API 33(Android 13),可以尝试安装更高版本的
Xamarin.Firebase.Analytics包,新版本通常会适配更高的Android目标框架,减少版本不兼容问题。清理重建解决方案:完成设置调整后,清理解决方案,手动删除各项目下的
bin和obj文件夹,再重新编译,确保所有更改生效。
内容的提问来源于stack exchange,提问作者Steve

