Xamarin: 没有找到与给定名称(AppCompat)匹配的资源。

17

我在Azure上部署了一个虚拟机。 我安装了Visual Studio 2015、Xamarin和其他移动开发工具。我在本地计算机上进行了相同的设置,以便从Visual Studio测试我的应用程序。

唯一的区别是Android SDK的安装。 在我的本地计算机上,我没有映像系统。

Android DSK Manager

我在虚拟机上开发了一个应用程序。 编译期间没有错误。我使用了Android.Support.Design、Android.Support.V4、Android.Support.V7.AppCompat、Android.Support.V7.RecyclerView(来自NuGet的最新版本)及其MvvmCross实现。

My Azure Virtual Machine

我想在本地计算机上继续开发这个应用程序。 NuGet包已正确还原。

但当我构建应用程序时,出现了一些错误:

My Local Machine

Error       Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.  Novatech.Droid  D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error       Error retrieving parent for item: No resource found that matches the given name 'Base.Widget.AppCompat.Button'. Novatech.Droid  D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error       No resource found that matches the given name: attr 'buttonStyle'.  Novatech.Droid  D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error       No resource found that matches the given name: attr 'colorAccent'.  Novatech.Droid  D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error       No resource found that matches the given name: attr 'colorPrimary'. Novatech.Droid  D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error       No resource found that matches the given name: attr 'colorPrimaryDark'. Novatech.Droid  D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error       No resource found that matches the given name: attr 'windowActionBar'.  Novatech.Droid  D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error       No resource found that matches the given name: attr 'windowNoTitle'.    Novatech.Droid  D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml
Error       No resource found that matches the given name: attr 'windowNoTitle'.    Novatech.Droid  D:\Sources\Novatech\Novatech.Droid\Resources\values\styles.xml

我尝试过:

  • 将'Theme.AppCompat.Light.DarkActionBar'更改为'@android:styles/Theme.AppCompat.Light.DarkActionBar',以及其他一些(android/styles)
  • C:\Program Files (x86)\Android\android-sdk\extras\android\support\v7\appcompat\project.properties中将target=android-19更改为target=android-21

有人能解释一下问题吗?我放弃了。操作系统、工具、SDK和JDK都是相同的。


请清理并重新构建您的项目。 - BYISHIMO Audace
15个回答

13

我在 Mac 上使用 Xamarin Studio 时也遇到了同样的问题。为了解决这个问题,我更新了 NuGet 包 Xamarin.Android.Support.v7.AppCompat。我认为你也可以使用相同的方法来解决你在 Visual Studio 上的问题。

看一下图片:
enter image description here


我有最新版本(23.3.0) - Andres Talavera
1
我不得不删除整个支持库并重新添加它们。 - Milad Faridnia
1
不幸的是,它没有起作用,因为给了我这个消息: 将“Xamarin.Android.Support.v7.AppCompat 23.3.0”更新为“Xamarin.Android.Support.v7.AppCompat 23.4.0.1”失败。无法找到与“Xamarin.Android.Support.v7.AppCompat 23.4.0.1”兼容的“Xamarin.Forms”的版本。 尽管Xamarin.Forms包已更新到最新版本。 - Amjad Husseini
我不得不更新 Xamarin.Forms NuGet 包,这也更新了 Xamarin.Android.Support 包。 - habakuk

5
在我的情况下,“最低Android版本”API 21,但“目标Android版本”是“使用目标框架版本(API 23)”,然而之前它并没有起作用,后来我将两个版本都指定为API 21,突然间它开始按照预期工作了。
后来,我将最低Android版本更改为API 21,目标Android版本更改为“使用目标框架版本(API 23)”。

2

我曾经遇到过同样的问题,因为我在 style.xml 中使用了这些项。

  <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>

但是在color.xml文件中并没有定义colorAccent

<resources>
<color name="primary">#2196F3</color>
<color name="primaryDark">#1976D2</color>
<color name="accent">#FFC107</color>
 <color name="window_background">#F5F5F5</color>
 <color name="splash_background">#3498DB</color>

只需添加即可简单解决

<color name="colorAccent">#3498db</color>

1

按照给定的顺序尝试以下方法:

  1. 解决方案范围的包恢复
  2. 重启 Visual Studio
  3. 清理并重新构建

这些方法对我解决了问题。


它没有,我甚至不得不重新启动我的笔记本电脑。 - david

1

以下是步骤:

创建一个新应用程序 输入图像描述

然后右键单击“Xamarin.Android.Support.v7.AppCompat”,选择“更新”。

等待IDE完成更新并重新构建应用程序。 输入图像描述


1

进入路径 C:\Program Files (x86)\Android\android-sdk\extras\android\support\v7\appcompat

打开project.properties文件。

将目标 Android 更改为 target=android-21


0
在我的情况下,问题是我有一个本地的Nuget包服务器。
花了一段时间才意识到Xamarin Studio试图从错误的源更新包。

0
在我的情况下,将 Xamarin.Support 版本与目标框架版本匹配起来是有效的。
例如: 如果您的目标是 25 API,则您的支持库也应该是 25.x。

0
在我的情况下,我通过在XML -> Schemas菜单下添加android-layout-xml.xsdschemas.android.com.apk.res.android.xsd来解决这个问题(仅在axml文件中可访问)。
关于这些文件的确切位置,建议在计算机上进行搜索,因为它们不在Xamarin文件夹中,如其他答案所建议。在我的情况下,它们位于项目的obj文件夹下[obj -> Debug -> Schemas ...]。
希望这能帮助您解决问题。

0

你的编译 SDK 版本必须与支持库的主要版本匹配。

由于你正在使用支持库 v23,所以需要使用 Android SDK v23 进行编译。

或者,你可以继续使用最新的支持库 v22,并切换到 Android SDK v22 进行编译。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接