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

时间:2016-06-12 23:50:13

标签: android xamarin android-support-library

我在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

我试过

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

有人可以向我解释一下这是什么问题吗?我放弃了相同的操作系统,相同的工具,相同的SDK,相同的JDK,

15 个答案:

答案 0 :(得分:13)

我在Mac上的Xamarin Studio遇到了同样的问题。我为解决这个问题所做的就是更新NuGet包Xamarin.Android.Support.v7.AppCompat。我认为您也可以使用相同的方法在Visual Studio上修复您的问题。

看一看 enter image description here

答案 1 :(得分:5)

就我而言,“最低Android版本” API 21,但“目标Android版本”是“使用目标框架版本(API 23)”,但它不是我早些时候工作了,然后我将这两个版本都指向了API 21,突然之间就开始按预期工作了。

后来我将最低Android版本更改为API 21,将目标Android版本更改为“使用目标框架版本(API 23)”

答案 2 :(得分: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>

答案 3 :(得分:1)

试试这个。

导航至C:\Program Files (x86)\Android\android-sdk\extras\android\support\v7\appcompat

打开project.properties文件。

将目标机器人更改为target=android-21

答案 4 :(得分:1)

以下是步骤:

创建新应用 https://github.com/scala/scala/blob/2.12.x/src/library/scala/collection/immutable/List.scala#L452

然后右键点击&#34; Xamarin.Android.Support.v7.AppCompat&#34;,选择&#34;更新&#34;。

等待IDE完成更新并重建应用程序。 enter image description here

答案 5 :(得分:0)

我从Xamarin Components切换到NuGet包,现在可以使用了。 MvvmCross为其依赖项安装了最新版本的Nuget(23.3.0)软件包(MvvmCross.Droid.Support.V4,MvvmCross.Droid.Support.V7.AppCompat,MvvmCross.Droid.Support.V7.Preference ...)。和之前使用的组件。

我还必须复制&#34; C:\ Users \ andres \ AppData \ Local \ Xamarin&#34;我虚拟机中的文件夹。

  

在Visual Studio中,我没有关于组件可用更新的通知。

答案 6 :(得分:0)

就我而言,我可以通过在android-layout-xml.xsd菜单下添加schemas.android.com.apk.res.android.xsdXML -> Schemas来解决此问题(只有在axml文件中才能访问)。 对于这些文件的确切位置,我建议在计算机上进行搜索,因为它们不在其他答案中建议的Xamarin文件夹中。在我的情况下,他们在obj文件夹[obj -> Debug -> Schemas ...]

下的项目中

希望这可以帮助您解决问题。

答案 7 :(得分:0)

在我的情况下,问题是我有一个本地的Nuget Package Server。

我花了一些时间才意识到Xamarin Studio正试图从错误的来源更新软件包。

答案 8 :(得分:0)

尝试其中一个或全部:

  1. Solution wide package restore
  2. 重新启动visual studio
  3. 清洁&amp;重建
  4. 它解决了我的问题

答案 9 :(得分:0)

就我而言,将Xamarin.Support版本与Target Framework版本匹配起作用。

例如: 如果您的目标是25 API,那么您的支持库也应该是25.x ..

答案 10 :(得分:0)

在虚拟机上使用不带Visual Studio的MSBuild时,我遇到了类似的问题。我试图构建一个Xamarin Android项目。消息“为主题theme.appcompat.light.darkactionbar检索父级时出错”的消息一直持续下去。我可以通过添加参数/ t:restore来解决它-例如

msbuild  /t:SignAndroidPackage /t:restore /p:Configuration=Release <project path>

请注意,当我第一次使用restore参数运行它时,它仍然失败,但是当我尝试再次构建它时,它可以工作。希望这会对某人有所帮助-我花了几个小时才能正确配置MSBuild!

答案 11 :(得分:0)

我从样式中引用的属性遇到错误,因此将attrs.xml重命名为Attrs.xml(然后在完全重建后再次出现错误时再次返回)。

答案 12 :(得分:0)

在完全相同的笔记本电脑上将项目从一个文件夹移动到另一个文件夹后,我遇到了同样的问题。我通过反复试验使它起作用,但仍然不知道问题的原因。对其进行修复涉及清洗解决方案几次并重新启动Visual Studio。

答案 13 :(得分:0)

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

由于您正在使用v23支持库,因此需要针对v23的Android SDK进行编译。

或者,您可以通过切换到最新的支持库v22继续针对Android SDK v22进行编译。

答案 14 :(得分:0)

在AppData中删除缓存文件夹可能会有所帮助

**Hello World!!**