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

时间:2019-07-12 06:33:59

标签: 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.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;

1 个答案:

答案 0 :(得分:0)

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

我清理了裸露的小包,并删除了“ Crosslight.Xamarin.Android.Support.Core.UI”,这已由我解决。

我无法使用Leon Lu-MSFT建议的步骤,但是我使用命令进行了等效操作。如您在下面的步骤中所见。

*首先尝试* 在开始这些步骤之前,我将仔细检查您是否有任何NuGet软件包(我的软件包重复的原因),将其删除并进行构建。

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

  1. 打开您在VS中遇到的问题的解决方案。
  2. 转到工具> NuGet程序包管理器>程序包管理器设置->常规,然后单击“清除所有NuGet缓存
  3. 这应该返回一个错误,因为您有一个打开的项目,如果没有打开,请跳到步骤6
  4. 请不要关闭解决方案,而是打开“运行”(Windows键+ R)并键入“ cmd”并运行以下命令:Clearing Local Folders - Microsoft Docs
    • dotnet nuget locals http-cache --clear
    • dotnet nuget locals全局软件包--clear
    • dotnet nuget locals temp --clear
    • dotnet nuget locals plugins-cache --clear
  5. 命令2和4应该会给您一个错误,这反过来将为您提供有关正在使用哪些软件包的提示,这可能是导致错误的原因。
  6. 现在关闭VS解决方案并运行fail命令。现在,所有命令都应该已经成功运行。
  7. 再次打开您的解决方案。删除创建重复项的NuGet,然后尝试再次构建解决方案。
  8. 现在,您应该可以在没有错误的情况下构建项目了: java.lang.IllegalArgumentException:已添加:Landroid / support / annotation / AnimRes

希望有帮助!