Xamarin.android 如何修复java.lang.IllegalArgumentException:已添加:Landroid/support/annotation/AnimRes

Xamarin.android 如何修复java.lang.IllegalArgumentException:已添加:Landroid/support/annotation/AnimRes,xamarin.android,Xamarin.android,没有办法解决两者之间的冲突。我尝试卸载Visual Studio,修复Visual Studio,但仍然没有用 "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" y "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e". Se elegirá "mscorlib, Version=4.0.0

没有办法解决两者之间的冲突。我尝试卸载Visual Studio,修复Visual Studio,但仍然没有用

"mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" y "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e". Se elegirá "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" de manera arbitraria.
1> Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnimRes;
1> Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnimatorRes;
1> Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnyRes;
1> Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AnyThread;
1> Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/ArrayRes;
1> Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/AttrRes;
1> Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/BinderThread;
1> Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/BoolRes;
1> Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/annotation/CallSuper;
1>
1> UNEXPECTED TOP-LEVEL EXCEPTION:
1> java.lang.RuntimeException: Translation has been interrupted
1> at com.android.dx.command.dexer.Main.processAllFiles(Main.java:614)
1> at com.android.dx.command.dexer.Main.runMonoDex(Main.java:310)
1> at com.android.dx.command.dexer.Main.runDx(Main.java:288)
1> at com.android.dx.command.dexer.Main.main(Main.java:244)
1> at com.android.dx.command.Main.main(Main.java:95)
1> Caused by: java.lang.InterruptedException: Too many errors
1> at com.android.dx.command.dexer.Main.processAllFiles(Main.java:606)
1> ... 4 more
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2816,3): error : java.lang.IllegalArgumentException: already added : Landroid/support/annotation/AnimRes;

多亏了Leon Lu-MSFT的评论,我自己解决了这个问题。 当我更新要在我的Xamarin.Android项目中使用的软件包时,我无意中安装了:Xamarin.Android.Support.Core.UI和Crosslight.Xamarin.Android.Support.Core.UI,这反过来又给了我一个错误:java.lang.IllegalArgumentException:已经添加了:Landroid/Support/annotation/AnimRes

我清除了我的nuget cach并删除了Crosslight.Xamarin.Android.Support.Core.UI,它解决了我的问题

我无法使用Leon Lu-MSFT提出的步骤,但我使用命令完成了eqvivalent。正如您在下面的步骤中所看到的

*先试试这个* 在开始这些步骤之前,我会仔细检查是否有导致包重复的NuGet包,将其删除并进行构建

如果不起作用,请尝试以下步骤:

打开您在VS中遇到问题的解决方案。 进入工具>NuGet软件包管理器>软件包管理器设置>常规,点击清除所有NuGet缓存 这将返回一个错误,因为您有一个打开的项目,但如果没有,则跳到步骤6 暂时不要关闭解决方案,但打开并运行Windows key+R,键入cmd并运行以下命令: dotnet nuget本地http缓存-清除 dotnet nuget locals全局包-清除 dotnet nuget局部变量-清除 dotnet nuget本地插件缓存-清除 命令2和4应该会给您一个错误,这反过来会给您一个关于正在使用哪些包的提示,这可能是错误的原因。 现在关闭VS解决方案并运行fail命令。现在,所有命令都应该已成功运行。 再次打开您的解决方案。删除创建复制的NuGet,然后再次尝试构建解决方案。 现在,您应该能够构建项目,而不会出现以下错误: java.lang.IllegalArgumentException:已添加:Landroid/support/annotation/AnimRes
希望有帮助

您可以尝试在VSTools>nuget Package Manager>Package Manager设置中清理nuget缓存,如果不起作用,请删除所有包并重新安装。这太棒了!请别忘了投票支持我的答案:谢谢你提供这个解决方案,我在将Xamarin.Android.Support.v7.cardwiew添加到我的项目后遇到了同样的问题,上面的解决方案完全解决了这个问题。强调步骤3-6