【问题标题】:Xamarin.Android: Error APT0000: Error retrieving parent for item: No resource found that matches the given name '@android:style/Theme.AppCompat'Xamarin.Android:错误 APT0000:检索项目的父项时出错:未找到与给定名称“@android:style/Theme.AppCompat”匹配的资源
【发布时间】:2018-02-01 21:45:50
【问题描述】:

我正在尝试在我的 Xamarin.Android 应用中使用 CoordinatorLayout。我一直在使用以Theme.Material.Light 作为其父主题的自定义主题,在我添加CoordinatorLayout 之前它运行良好。当我添加它时,我收到一条错误消息,告诉我必须使用 Theme.AppCompat 主题,但是一旦我这样做,应用程序就无法构建并给我以下错误:

/{project directory}/Resources/values/Styles.xml(0,0):
Error APT0000: Error retrieving parent for item:
No resource found that matches the given name 
'@android:style/Theme.AppCompat'. (APT0000) (TnpApp.Android)

This answer 建议安装与我正在使用的 Android SDK 匹配的主要版本的支持库。我已经尝试过了(我认为我做的一切都是正确的),但它没有帮助。

有人有什么想法吗?

我在 Mac 上使用 Xamarin Studio。

更新 1

我在一个干净的 Xamarin.Android 项目中尝试了 MainActivity.cs 中的以下代码,但构建失败并出现相同的错误。

namespace ThemeTest
{
    [Activity(Label = "ThemeTest", MainLauncher = true, Icon = "@mipmap/icon", Theme = "@android:style/Theme.AppCompat.Light")]
    public class MainActivity : Activity
    {
        // ...
    }
}

更新 2

按照this answer 中的建议,我从/user/.local/share/Xamarin 中删除了除Mono for Androidzips 之外的所有文件夹。我关闭了 Xamarin Studio 并重新打开它。我尝试部署应用程序,Xamarin 重新安装了所有包,但构建失败并出现原始错误。

【问题讨论】:

    标签: android xamarin xamarin.android


    【解决方案1】:

    我可以通过从我的 Styles.xml 文件中的 style 元素的 parent 标记中删除 @android:style/ 来解决此问题。所以看起来像这样......

    <style name="MyCustomTheme" parent="@android:style/Theme.AppCompat">
    

    现在看起来像这样...

    <style name="MyCustomTheme" parent="Theme.AppCompat">
    

    我很震惊解决方案这么简单,但它确实有效。 :) 我从this code 得到这个想法。

    【讨论】:

      【解决方案2】:

      我在 Visual Studio 2015/Xamarin 中进行开发并看到了同样的问题。虽然我仍然不了解此问题的原因或解决方法,但该线程确实为我指明了正确的方向,这似乎与重新保存 styles.xml(对于我的开发环境)有关,而不是其他任何事情。

      我的styles.xml 没有@android:style/,我仍然有上面提到的错误。如另一个建议的解决方案中所述,我添加了

      &lt;style name="MyCustomTheme.Base" parent="Theme.AppCompat" /&gt;

      &lt;style name="MyCustomTheme" parent="Theme.AppCompat"&gt; 之前,保存了styles.xml 并重新构建了我的项目而没有错误。然后我删除了

      &lt;style name="MyCustomTheme.Base" parent="Theme.AppCompat" /&gt;,

      重新保存styles.xml 并重新构建,没有错误。从视觉上看,我的styles.xml没有改变,但是错误消失了。

      【讨论】:

        【解决方案3】:

        如果您最近安装了 google play service 相关软件包(例如 firebase,但还有很多其他软件包),则此安装可能会与您的 CSproj 发生冲突和您的 package.json 文件(查看您的版本控制历史记录以查看这些文件是否已更改),并修改您的目标 api 版本:例如从目标 Api 25 到目标 26 等。

        如果是这种情况,您应该使用以下两种方法之一来解决此问题:

        • 确保下载您现在所针对的 sdk 版本,为此,请转至 TOOLS > SDK manager

        • 或恢复到您的旧目标,方法是放弃包对您的 csproj 和 package.json 文件所做的更改并清理和重建。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-01-25
          • 1970-01-01
          • 2015-09-05
          • 1970-01-01
          • 2017-12-27
          相关资源
          最近更新 更多