Xamarin Android,java类ListenableFuture被定义多次,带有新的Andriod App

问题描述 投票:0回答:1

我在 Visual Studio 2022 中创建了一个全新的 Xamarin Android 应用程序

然后,我引用了 Xamarin.Stripe.Terminal.Android 库的 v1.0.17.2,因为我需要在读卡器上执行一些交易。

我编译了解决方案,没有触及一行代码,但遇到了以下问题

类型 com.google.common.util.concurrent.ListenableFuture 被定义多次:C:\Users\XYZ.nuget\packages\xamarin.google.guava.listenablefuture .0.0.2 uildTransitive\monoandroid50\guava- Listenablefuture.jar:com/google/common/util/concurrent/ListenableFuture.class,obj\DebugP\lp,\jl\guava-28.1-android.jar:com/google/common/util/concurrent/ListenableFuture.class

您可以在错误消息中看到两个jar引用

1.0.0.2 uildTransitive\monoandroid50\guava-listenablefuture.jar

obj\DebugP\lp,\jl\guava-28.1-android.jar

如果我采用 Visual Studio 构建的完整 java 命令行,然后删除对 jar 的引用

1.0.0.2 uildTransitive\monoandroid50\guava-listenablefuture.jar

然后 java 从命令行正确编译,并带有大量警告。


我只是想知道是否有某种方法可以从 Visual Studio 的编译过程中排除此 JAR,以便构建可以正确继续。

任何指导将不胜感激。

xamarin xamarin.android
1个回答
0
投票

在将我的 Avalonia 项目从 11.0.6 升级到 11.0.10 时,我遇到了看起来完全相同的问题。 我在这里找到了解决方案:https://github.com/xamarin/AndroidX/issues/535

最相关的部分是:

<XamarinGoogleGuavaListenableFutureOptOut>true</XamarinGoogleGuavaListenableFutureOptOut>

您可以添加到 .csproj 中的 PropertyGroup 以从构建中排除

guava-listenablefuture.jar

如果这本身还不够,帖子还提到明确引用 Guava 和 Guava.ListenableFuture 包以确保使用最新版本和/或添加

<XamarinGoogleGuavaOptOut>true</XamarinGoogleGuavaOptOut>
以排除
guava.jar

© www.soinside.com 2019 - 2024. All rights reserved.