【问题标题】:Xamarin Support Library (CardView) error when Updated to API 23更新到 API 23 时出现 Xamarin 支持库 (CardView) 错误
【发布时间】:2015-10-08 23:02:50
【问题描述】:

我刚刚更新到支持 Android API 23(6.0) 的稳定 Xamarin.Android(5.1.7.12)。

我已将我的 TargetFrameworkVersion 更新到 v6.0 (API 23),并将我的所有支持库更新到版本 23.0.1.1(当时可用的最新 NuGet 包)。我已经下载了编译到 API23 所需的所有内容(Android SDK Manager 中的 SDK 和 BuildTools)。

当我尝试编译这个项目时,我得到了这个错误:

... ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "cardBackgroundColor" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "cardCornerRadius" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "cardElevation" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "cardMaxElevation" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "cardUseCompatPadding" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "cardPreventCornerOverlap" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "contentPadding" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "contentPaddingLeft" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "contentPaddingRight" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "contentPaddingTop" has already been defined ...\obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml(10): error APT0000: Attribute "contentPaddingBottom" has already been defined 由于这些都与 CardView 有关,我尝试删除与 CardView 相关的所有内容(包括 CardView 的支持包),然后编译并运行所有内容,但我需要 CardView...

我还需要做些什么来支持带有支持库 23 的 CardView 吗?

这是 CardView 的一个已知问题(与 Xamarin 无关),还是 Xamarin 的错误?当我使用第 22 版时,一切正常。

.

更新: 只是为了清除我的场景,我使用的是 Visual Studio 2015,而我的项目不是 Xamarin.Forms,它使用的是 MvvmCross(3.5.1,来自 NuGet 稳定版)。

我有另一个项目(一个编译的、Release/AnyCPU、DLL,不是通过 VS 的项目引用),我依赖它并使用 Xamarin.Android.Support.v4 和 Xamarin.Android.Support.v7.AppCompat,但是没有参考 CardView。它们只是我在开发的许多项目中重复使用的一堆自定义类。

我已将两个 NuGet 包(v4 和 v7 AppCompat)更新到我的项目使用的相同版本 (23.0.1.1)。他们都在使用唯一的 android_m2repository_r20.zip 文件(提取和全部)。 我尝试清理解决方案,删除所有项目(包括引用的 DLL)上的 bin/obj,并删除下载了 android_m2repository_r20.zip(133MB)的 %LocalAppData%\Xamarin\Local\Android.Support.*,文件四次(第四个是 RecyclerView,我只在这个项目中引用)。我不知道为什么这些文件没有缓存在同一个地方,因为它们完全相同,但这不是问题。

我还在使用 GooglePlay 服务(仅 Base 和 Analytics,版本均为 26.0.0.0)、Xamarin.Facebook.Android(4.6.0.0)、Parse(1.6.0) 和 OxyPlot(最新 alpha)。澄清一下,这是我的 packages.config 文件: <?xml version="1.0" encoding="utf-8"?> <packages> <package id="Microsoft.Bcl" version="1.1.10" targetFramework="MonoAndroid50" /> <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="MonoAndroid50" /> <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.CrossCore" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.Droid.Fragging" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.MvvmCrossLibraries" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.Plugin.Color" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.Plugin.DownloadCache" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.Plugin.File" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.Plugin.Json" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.Plugin.Messenger" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.Plugin.PictureChooser" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.Plugin.Visibility" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.HotTuna.Plugin.WebBrowser" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="MvvmCross.PortableSupport" version="3.5.1" targetFramework="MonoAndroid50" /> <package id="Newtonsoft.Json" version="7.0.1" targetFramework="MonoAndroid50" /> <package id="OxyPlot.Core" version="2015.1.744-alpha" targetFramework="MonoAndroid50" /> <package id="OxyPlot.Mobile" version="2015.1.744-alpha" targetFramework="MonoAndroid50" /> <package id="Parse" version="1.6.0" targetFramework="monoandroid5" /> <package id="Xamarin.Android.Support.v4" version="23.0.1.1" targetFramework="monoandroid6" /> <package id="Xamarin.Android.Support.v7.AppCompat" version="23.0.1.1" targetFramework="monoandroid6" /> <package id="Xamarin.Android.Support.v7.CardView" version="23.0.1.1" targetFramework="monoandroid6" /> <package id="Xamarin.Android.Support.v7.RecyclerView" version="23.0.1.1" targetFramework="monoandroid6" /> <package id="Xamarin.Facebook.Android" version="4.6.0.0" targetFramework="monoandroid51" /> <package id="Xamarin.GooglePlayServices.Analytics" version="26.0.0.0" targetFramework="monoandroid51" /> <package id="Xamarin.GooglePlayServices.Base" version="26.0.0.0" targetFramework="monoandroid51" /> </packages>

【问题讨论】:

    标签: android xamarin android-support-library android-cardview


    【解决方案1】:

    您是否尝试过清洁您的解决方案?此外,在你清理之后,去删除解决方案中所有项目的 bin/ 和 obj/ 文件夹。为了安全起见,重新启动 Xamarin Studio(或 Visual Studio)并重建!

    如果仍然失败,请尝试删除您的 Xamarin 缓存。删除~/.local/share/Xamarin(或Windows 上的%LocalAppData%\Xamarin\Local\)下的所有Android.Support.*文件夹,重复第一个建议,然后重试!

    【讨论】:

    • 我在 Snackbar 上也遇到过类似的问题,在清理并删除了 obj 和 bin 之后,它起作用了。所以绝对有效。
    • 我无法重现该问题(我维护这些绑定),所以我猜这就是问题所在 :)
    • 删除缓存成功!我更新帖子太早了。非常感谢!
    【解决方案2】:

    我遇到了类似的问题,我只删除了值文件

    \obj\Debug\resourcecache\983D70AD6A5CC1E0AF6E3C8A8BE731EB\res\values\values.xml

    成功了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-13
      • 2016-06-08
      • 1970-01-01
      相关资源
      最近更新 更多