我在我的Xamarin表单应用程序中使用Google,在将Xamarin.Firebase.Firestore Nuget包更新到最新版本之后,我就无法在Android上调试我的项目了。
我创建了一个新的Xamarin Forms项目,首先检查错误是因为我的代码还是由于Nuget包本身的问题。
然后我安装了Xamarin.Firebase.Firestore Nuget软件包,很快发现问题不在我的代码中,而是Nuget包。
如果您正在尝试安装Xamarin.Firebase.Firestore Nuget包,并且没有安装Xamarin.AndroidX.Core和Xamarin.AndroidX.Browser Nuget包,它会说“无法添加Xamarin.Firebase.Firestore”,并显示一个非常长的错误消息。这是非常恼人的,因为它为您提供了一个新的阅读方式,而不是简单地显示一个提示,将Nuget包作为依赖项安装在父Nuget包旁边。
然后,为了安装Xamarin.AndroidX.Browser Nuget包,首先需要安装Xamarin.AndroidX.Core Nuget包。如果您不首先安装Xamarin.AndroidX.Core Nuget包,您将收到另一条长错误消息,说明您需要安装它。
在我安装了所有三个Nuget软件包并尝试运行我的Android项目之后,我得到了以下错误消息:
/Users/{UserName}/Desktop/FirebaseTests/FirebaseTests/FirebaseTests.Android:错误JAVA0000: /Users/{UserName}/.nuget/packages/xamarin.google.guava/31.1.0.3/buildTransitive/monoandroid12.0/../../jar/guava.jar:com/google/common/annotations/Beta.class:类型com.google.common.annotations.Beta中的错误被多次定义: /Users/{UserName}/.nuget/packages/xamarin.google.guava/31.1.0.3/buildTransitive/monoandroid12.0/../../jar/guava.jar:com/google/common/annotations/Beta.class,obj/Debug/lp/102/jl/__reference__guava.jar:com/google/common/annotations/Beta.class编译失败java.lang.RuntimeException: com.android.tools.r8.CompilationFailedException:编译未能完成,来源: /Users/{UserName}/.nuget/packages/xamarin.google.guava/31.1.0.3/buildTransitive/monoandroid12.0/../../jar/guava.jar com/google/公用/注释/Beta.class at com.android.tools.r8.internal.Bj.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:98) at com.android.tools.r8.D8.main(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:4)引起: com.android.tools.r8.CompilationFailedException:编译失败,产地: /Users/{UserName}/.nuget/packages/xamarin.google.guava/31.1.0.3/buildTransitive/monoandroid12.0/../../jar/guava.jar:com/google/common/annotations/Beta.class at Version.fakeStackEntry(Version_3.3.28.java:0) at com.android.tools.r8.internal.Bj.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:75) at com.android.tools.r8.内在.Bj.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:28) at com.android.tools.r8.internal.Bj.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:27) at com.android.tools.r8.internal.Bj.b(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:2) at com.android.tools.r8.D8.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:22) at com.android.tools.r8.D8.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:17) at com.android.tools.r8.internal.Bj.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:85) .1多个原因是:com.android.tools.r8.内在.f:多次定义com.google.common.annotations.Beta类型: /Users/{UserName}/.nuget/packages/xamarin.google.guava/31.1.0.3/buildTransitive/monoandroid12.0/../../jar/guava.jar:com/google/common/annotations/Beta.class,obj/Debug/lp/102/jl/__reference__guava.jar:com/google/common/annotations/Beta.class at com.android.tools.r8.internal.DT.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:14) at com.android.tools.r8.internal.DT.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:22) at com.android.tools.r8.internal.CN.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:33) at com.android.tools.r8。internal.CN.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:10) at java.base/java.util.concurrent.ConcurrentHashMap.merge(ConcurrentHashMap.java:2048) at com.android.tools.r8.internal.CN.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:6) at com.android.tools.r8.graph.B2$a.e(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:4) at com.android.tools.r8.dex.b.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:105)在com.android.tools.r8.dex.b.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:28) at com.android.tools.r8.D8.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:25) at com.android.tools.r8.D8.d(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:606) at com.android.tools.r8.D8.c(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:1) at com.android.tools.r8内在.Bj.a(R8_3.3.28_2aaf796388b4e9f6bed752d926eca110512a53a3f09a8d755196089c1cfdf799:24) .5目录'obj/Debug/lp/102‘来自于'Xamarin.Grpc.Stub.dll’。(JAVA0000) (FirebaseTests.Android) java
错误指的是Xamarin.Google.Guava,所以我认为单独安装Xamarin.Google.Guava可以解决这个问题,但一点也不解决;我仍然会得到相同的错误。
有人能帮帮我吗?我不可能是唯一发生在我身上的人。
发布于 2022-08-30 21:57:00
您应该提交错误文件,Xamarin.Firebase.Firestore在安装时需要工作:https://github.com/xamarin/GooglePlayServicesComponents/issues/new
除此之外,您还可以尝试一些较旧的版本,看看它是否有效,例如,版本123.0.3.7似乎对我很好。
https://stackoverflow.com/questions/73546427
复制相似问题