构建新的 Xamarin.Forms 项目失败

Posted

技术标签:

【中文标题】构建新的 Xamarin.Forms 项目失败【英文标题】:Building a new Xamarin.Forms project fails 【发布时间】:2016-10-24 01:32:08 【问题描述】:

我正在尝试使用 Xamarin Studio(6.1.1 build 15.macOS v10.12)创建一个新的 Xamarin.Forms 项目。 我得到了一个包含 3 个项目的解决方案。一个共享,一个用于 ios,一个用于 android。除了Android之外,一切都建立起来了。尝试编译资源时失败,特别是样式文件。

出现以下错误:

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

我尝试删除所有与 Android 支持相关的库和 Xamarin.Forms 本身,然后使用 NuGet 再次添加它们。但这没有帮助。 我使用的 Xamarin.Forms 版本是 2.3.2.127。

也许有人可以在这里帮助我?

编辑: 这是发生错误的文件。我没有改变任何东西。这是 Xamarin 生成的。

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="MyTheme" parent="MyTheme.Base">
    </style>
    <!-- Base theme applied no matter what API -->
    <style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
        <!--If you are using revision 22.1 please use just windowNoTitle. Without android:-->
        <item name="windowNoTitle">true</item>
        <!--We will be using the toolbar so no need to show ActionBar-->
        <item name="windowActionBar">false</item>
        <!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette-->
        <!-- colorPrimary is used for the default action bar background -->
        <item name="colorPrimary">#2196F3</item>
        <!-- colorPrimaryDark is used for the status bar -->
        <item name="colorPrimaryDark">#1976D2</item>
        <!-- colorAccent is used as the default value for colorControlActivated
         which is used to tint widgets -->
        <item name="colorAccent">#FF4081</item>
        <!-- You can also set colorControlNormal, colorControlActivated
         colorControlHighlight and colorSwitchThumbNormal. -->
        <item name="windowActionModeOverlay">true</item>
        <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>
    </style>
    <style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
        <item name="colorAccent">#FF4081</item>
    </style>
</resources>

我还删除了所有包并重新添加了 Xamarin.Forms。它会自动添加所需的支持包。但是错误仍然存​​在。

【问题讨论】:

您如何在styles.xml 中定义这些资源?您能否发布显示这些项目的相关代码?大多数这些错误来自nuget.org/packages/Xamarin.Android.Support.v7.AppCompat 和nuget.org/packages/Xamarin.Android.Support.Design 包。确保它们在您的 Resources.designer.cs 文件中定义。 您需要支持库,因为 Xamarin.Forms 使用它们。可能听起来很愚蠢,但你试过重建吗?这些是标准的 Android 资源,有时它们不会在第一次被拉入,因此您需要重新构建所有内容。 【参考方案1】:

我通过从https://developer.xamarin.com/guides/android/troubleshooting/resolving-library-installation-errors/ 下载android_m2repository_r29.zip 存储库并使用相同的指令解决了这个问题。

【讨论】:

以上是关于构建新的 Xamarin.Forms 项目失败的主要内容,如果未能解决你的问题,请参考以下文章

新的 Xamarin 项目不使用最新的 Xamarin 版本

使用新的 Xamarin 表单构建时出现“XamlCTask”任务意外失败”错误

Xamarin Forms Android:获取 XA3001:无法 AOT 程序集

在现有 Xamarin Forms 项目中添加新的 Android 项目[IOS]

Xamarin.Forms:Android 项目构建错误 - AppData\Local\Xamarin 文件夹中缺少文件

构建不成功:Xamarin.Forms 中的 Android 项目出错