由于奇怪的错误,Xamarin.Forms Android项目无法编译

时间:2017-01-21 05:44:13

标签: c# xamarin.android xamarin.forms

我有一个Xamarin.Forms项目,它包含一个可移植类库(PCL),一个iOS应用程序和一个Android应用程序。当我构建解决方案时,PCL和iOS项目成功构建,但Android应用程序根本没有构建,因为下面列出了几个奇怪的错误:

error APT0000: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.
error APT0000: No resource found that matches the given name: attr 'colorAccent'.
error APT0000: No resource found that matches the given name: attr 'colorPrimary'.
error APT0000: No resource found that matches the given name: attr 'colorPrimaryDark'.
error APT0000: No resource found that matches the given name: attr 'windowActionBar'.
error APT0000: No resource found that matches the given name: attr 'windowActionModeOverlay'.
error APT0000: No resource found that matches the given name: attr 'windowNoTitle'.
error APT0000: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.Dialog'.
error APT0000: No resource found that matches the given name: attr 'colorAccent'.

当我打开NuGet Package Manager时,更奇怪的是,我有以下组件的更新列表:

  

Xamarin.Android.Support.Design
  Xamarin.Android.Support.v4
  Xamarin.Android.Support.v7.AppCompat
  Xamarin.Android.Support.v7.CardView
  Xamarin.Android.Support.v7.MediaRouter
  Xamarin.Android.Support.v7.RecyclerView

如果我尝试更新任何组件,我会收到以下消息:

  

Unable to resolve dependencies. 'Xamarin.Android.Support.Design 24.2.1' is not compatible with 'Xamarin.Forms 2.3.3.180'.

我在某处读到了我应该完全卸载它们,因为我不需要它们但是如果我尝试卸载任何组件,我会收到以下错误:

  

Unable to uninstall 'Xamarin.Android.Support.v7.RecyclerView.23.3.0' because 'Xamarin.Android.Support.Design.23.3.0' depends on it.

如果我尝试卸载它们,即使没有任何依赖项的组件也会抛出类似的消息。我在网上搜索过,但我似乎无法找到解决方案。到目前为止,我尝试了以下内容:

  1. 完全重新创建项目。由于错误继续出现,这无济于事

  2. 正在删除 C:\Users\Admin\AppData\Local\Xamarin\ 的内容。此解决方案根本没有删除错误。

  3. 我做错了吗?我正在做的就是在Visual Studio中选择 Blank Xaml App(Xamarin.Forms Portable)模板并命名我的项目。你很难犯这个错误。一旦我选择Build,我就会得到Android项目的所有错误。这是Xamarin.Forms需要解决的问题吗?关于如何解决这个问题的任何建议?

2 个答案:

答案 0 :(得分:3)

使用不同的关键字搜索互联网后,我解决了这个问题。根据{{​​3}}帖子,一些Android组件显示这些错误的原因是因为ZIP下载损坏。这可能是因为:

  • 取消构建过程。如果您取消Android应用程序的构建过程,则所有正在下载的文件也会被取消,从而导致文件损坏。

  • 任何其他中断。网络错误或无响应的IDE也可能导致此问题。

要解决此错误,我建议如下:

  1. 导航到以下目录:

      

    C:\Users\User\AppData\Local\Xamarin

  2. 确保Visual Studio完全关闭。可以通过任务管理器检查,以确保没有其他属于Visual Studio的进程正在运行

  3. 删除目录的内容。如果出现任何警告对话框,请选择跳过并确保删除名为zips的文件夹

  4. 打开项目并执行清理。然后您可以继续构建项目,Visual Studio将下载您删除但未损坏的相同文件

  5. 您现在应该有一个有效的应用程序!

  6. 如果问题仍然存在,请确保您已正确执行这些步骤。

答案 1 :(得分:3)

您应该只更新Xamarin Forms包并单独保留Xamarin.Android。*包(表单包将为您升级它们)。

同样可以忽略那些主题错误,如果你收到编译错误,那可能是其他错误。