更新到API 23时出现Xamarin支持库(CardView)错误

时间:2015-10-08 23:02:50

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

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

我已将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稳定版)。

我有另一个项目(编译,发布/ 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文件(提取和全部)。 我已经尝试清理解决方案,删除所有项目上的bin / obj(包括引用的DLL),并删除%LocalAppData%\ Xamarin \ Local \ Android.Support。*,下载了android_m2repository_r20.zip(133MB),文件为FOUR次(第四次是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>

2 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:0)

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

\ OBJ \调试\ resourcecache \ 983D70AD6A5CC1E0AF6E3C8A8BE731EB \ RES \值\ values.xml

并且有效