xamarin - Syncfusion 在 Xamarin Forms 上迁移到 AndroidX 后导致生成错误
问题描述
将我的 Xamarin Forms 项目迁移到 AndroidX 后,我遇到了构建错误。这些错误都是几个包中的依赖引用:
Can not resolve reference: `Xamarin.Android.Support.v7.RecyclerView`, referenced by `Syncfusion.SfAutoComplete.Android`. Please add a NuGet package or assembly reference for `Xamarin.Android.Support.v7.RecyclerView`, or remove the reference to `Syncfusion.SfAutoComplete.Android`. Voltsec.Android
Can not resolve reference: `Xamarin.Android.Support.Compat`, referenced by `Syncfusion.SfListView.XForms.Android`. Please add a NuGet package or assembly reference for `Xamarin.Android.Support.Compat`, or remove the reference to `Syncfusion.SfListView.XForms.Android`. Voltsec.Android
Can not resolve reference: `Xamarin.Android.Support.SwipeRefreshLayout`, referenced by `Syncfusion.SfPullToRefresh.XForms.Android`. Please add a NuGet package or assembly reference for `Xamarin.Android.Support.SwipeRefreshLayout`, or remove the reference to `Syncfusion.SfPullToRefresh.XForms.Android`. Voltsec.Android
Can not resolve reference: `Xamarin.Android.Support.v4`, referenced by `XLabs.Forms.Droid`. Please add a NuGet package or assembly reference for `Xamarin.Android.Support.v4`, or remove the reference to `XLabs.Forms.Droid`. Voltsec.Android
Can not resolve reference: `Xamarin.Android.Support.v7.AppCompat`, referenced by `Syncfusion.Buttons.XForms.Android`. Please add a NuGet package or assembly reference for `Xamarin.Android.Support.v7.AppCompat`, or remove the reference to `Syncfusion.Buttons.XForms.Android`. Voltsec.Android
Can not resolve reference: `Xamarin.Android.Support.v7.RecyclerView`, referenced by `Sharpnado.Presentation.Forms.Droid`. Please add a NuGet package or assembly reference for `Xamarin.Android.Support.v7.RecyclerView`, or remove the reference to `Sharpnado.Presentation.Forms.Droid`.
看起来违法者是 Syncfusion、XLabs 和 Sharpnado。
我不完全确定如何解决此问题。以下是我目前在我的 Android 项目中安装的软件包:
<PackageReference Include="Autofac">
<Version>5.1.2</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>12.0.3</Version>
</PackageReference>
<PackageReference Include="Plugin.CurrentActivity">
<Version>2.1.0.4</Version>
</PackageReference>
<PackageReference Include="Plugin.Permissions">
<Version>6.0.0-beta</Version>
</PackageReference>
<PackageReference Include="Refit">
<Version>5.1.54</Version>
</PackageReference>
<PackageReference Include="Rg.Plugins.Popup">
<Version>1.2.0.223</Version>
</PackageReference>
<PackageReference Include="RtspClientSharp">
<Version>1.3.3</Version>
</PackageReference>
<PackageReference Include="Sharpnado.Presentation.Forms">
<Version>1.4.0</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.Buttons">
<Version>18.1.0.42</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfAutoComplete">
<Version>18.1.0.42</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfBusyIndicator">
<Version>18.1.0.42</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfChart">
<Version>18.1.0.42</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfListView">
<Version>18.1.0.42</Version>
</PackageReference>
<PackageReference Include="Syncfusion.Xamarin.SfPullToRefresh">
<Version>18.1.0.42</Version>
</PackageReference>
<PackageReference Include="Xam.Plugin.DeviceInfo">
<Version>4.2.0-beta</Version>
</PackageReference>
<PackageReference Include="Xam.Plugin.Media">
<Version>5.0.1</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.Core">
<Version>1.2.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.SwipeRefreshLayout">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.AppCompat">
<Version>1.1.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.CardView">
<Version>1.0.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.RecyclerView">
<Version>1.1.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.AppCompat.Resources">
<Version>1.1.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData">
<Version>2.2.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.MediaRouter">
<Version>1.1.0</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.Migration">
<Version>1.0.3</Version>
</PackageReference>
<PackageReference Include="Xamarin.Essentials">
<Version>1.5.2</Version>
</PackageReference>
<PackageReference Include="Xamarin.FFImageLoading">
<Version>2.4.11.982</Version>
</PackageReference>
<PackageReference Include="Xamarin.FFImageLoading.Forms">
<Version>2.4.11.982</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms" Version="4.6.0.529-pre3" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.1.0-rc3" />
<PackageReference Include="XLabs.Forms">
<Version>2.3.0-pre05</Version>
</PackageReference>
我的目标是 Android 10.0(Q)
有什么建议可以尝试吗?
解决方案
要解决与syncfusion控件相关的编译错误,您可以在android项目中添加以下包
Xamarin.Android.Support.v7.RecyclerView
Xamarin.Android.Support.Compat
Xamarin.Android.Support.SwipeRefreshLayout
Xamarin.Android.Support.v7.AppCompat
推荐阅读
- r - 使用汇总(或等效?)在 R 数据框中创建一列函数
- javascript - 在此示例中,如何更改单击时的图标?
- python - 多行搜索和替换
- javascript - 每个 Google Apps 脚本都会导致错误,但不会
- python - 如何获取数据框每一行中特定值的列名
- linux - 有什么方法可以让 System.Diagnostics.Process 尊重 Linux 用户的次要组?
- spring-batch - Spring批处理作业是线程安全的吗?
- jquery - 有没有办法在 WayPoints 中说从实际网站顶部与浏览器窗口当前顶部的偏移?
- swift - Swift:将数据从视图控制器传递到导航控制器
- react-native - 尝试在我的 React-Native 应用程序的所有页面上设置蒙特塞拉特字体