首页 > 解决方案 > 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)

有什么建议可以尝试吗?

标签: xamarinxamarin.formsxamarin.androidandroidxsyncfusion

解决方案


要解决与syncfusion控件相关的编译错误,您可以在android项目中添加以下包

Xamarin.Android.Support.v7.RecyclerView 
Xamarin.Android.Support.Compat
Xamarin.Android.Support.SwipeRefreshLayout
Xamarin.Android.Support.v7.AppCompat

推荐阅读