找不到与给定名称 Xamarin Android 匹配的资源。

8
无论我使用哪个资源或在哪里使用它,我的themes.xml文件中总是出现“找不到与给定名称匹配的资源”的错误。即使该资源在其他地方都可以正常工作。

以下是一些代码:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- the theme applied to the application or activity -->
    <style name="Theme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/ActionBarStyle</item>
        <item name="android:actionOverflowButtonStyle">@style/ActionBarOverflowStyle</item>
    </style>

    <!-- ActionBar styles -->
    <style name="ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">#008A3D</item>
    </style>

    <style name="ActionBarOverflowStyle" parent="@android:style/Widget.Holo.ActionButton.Overflow">
        <item name="android:src">@drawable/OverflowIcon</item>
    </style>


    <!--Dialog styles-->
    <style name="DialogStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">#008A3D</item>
    </style>
</resources>

我删除了项目节点以检查是否可以在代码中使用资源。 证明它有效;没有错误:


我认为这应该很明显,因为它在标题中。我想我会把它添加到帖子中。 - k0bin
3个回答

11
在谷歌搜索和调试了几个小时后,我发现问题是由于文件名中使用大写字母导致的,而这在其他地方都可以正常工作。这可能是 Android 的一个糟糕特性或者 Xamarin 中的一个 bug。

1
这不是一个错误,而是一个Android规则! - Andrea Bellitto
这可能是一个Android规则,但它应该提供一个更具描述性的异常。@AndreaBellitto - Elw00t
很奇怪,我有一些使用大写字母的布局可以正常工作,但有些却不行……这对我来说仍然是个谜。 - CiucaS
它对我有用,谢谢!@k0bin 如果您将自己的答案标记为已接受,那会对您有所帮助,干杯! - JCO9

1

对于其他因不同原因找到这个问题的人:

每当我在VS 2017中复制重命名可绘制资源时,它会更改“Build Action”。

仔细检查您的资源,并确保正确设置“Build Action”。在我的情况下,它需要是“AndroidResource”


0

从项目中删除图像,清理项目,添加正确重命名的图像(不要尝试在添加到项目后重命名图像)。应该可以完美地工作。


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