我刚刚更新到稳定的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>
答案 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
并且有效