xamarin / AndroidX

AndroidX bindings for .NET for Android

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Type androidx.lifecycle.DispatchQueue is defined multiple times

Arash1972 opened this issue · comments

Android application type

Android for .NET (net6.0-android, etc.)

Affected platform version

VS 2022, MAUI .Net 7.0

Description

I try to add GooglePlayService and firebase service to the MAUI project but got the error. I found that the error is on package xamarin.androidx.lifecycle.common version 2.6.1.2
i also tray the older verions but no one solve the issue.

Steps to Reproduce

  1. Using VS2022 create new MAUI for .NET 7.0
  2. add reference to xamarin.androidx.lifecycle.common 2.6.1.2
  3. compile the project

Did you find any workaround?

No response

Relevant log output

Severity	Code	Description	Project	File	Line	Suppression State
Error	JAVA0000	Error in C:\Users\Arash\.nuget\packages\
xamarin.androidx.lifecycle.common\2.6.1.2\buildTransitive\net6.0-android31.0\..\..\jar\androidx.lifecycle.lifecycle-common.jar:androidx/lifecycle/DispatchQueue.class:
Type androidx.lifecycle.DispatchQueue is defined multiple times: C:\Users\Arash\.nuget\packages\xamarin.androidx.lifecycle.common\2.6.1.2\buildTransitive\net6.0-android31.0\..\..\jar\androidx.lifecycle.lifecycle-common.jar:androidx/lifecycle/DispatchQueue.class, obj\Debug\net7.0-android\lp\135\jl\classes.jar:androidx/lifecycle/DispatchQueue.class
Compilation failed
java.lang.RuntimeException: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: C:\Users\Arash\.nuget\packages\xamarin.androidx.lifecycle.common\2.6.1.2\buildTransitive\net6.0-android31.0\..\..\jar\androidx.lifecycle.lifecycle-common.jar
androidx/lifecycle/DispatchQueue.class
	at com.android.tools.r8.internal.Fj.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:98)
	at com.android.tools.r8.D8.main(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:4)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: C:\Users\Arash\.nuget\packages\xamarin.androidx.lifecycle.common\2.6.1.2\buildTransitive\net6.0-android31.0\..\..\jar\androidx.lifecycle.lifecycle-common.jar:androidx/lifecycle/DispatchQueue.class
	at Version.fakeStackEntry(Version_3.3.75.java:0)
	at com.android.tools.r8.internal.Fj.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:75)
	at com.android.tools.r8.internal.Fj.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:28)
	at com.android.tools.r8.internal.Fj.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:27)
	at com.android.tools.r8.internal.Fj.b(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:2)
	at com.android.tools.r8.D8.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:22)
	at com.android.tools.r8.D8.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:17)
	at com.android.tools.r8.internal.Fj.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:85)
	... 1 more
Caused by: com.android.tools.r8.internal.f: Type androidx.lifecycle.DispatchQueue is defined multiple times: C:\Users\Arash\.nuget\packages\xamarin.androidx.lifecycle.common\2.6.1.2\buildTransitive\net6.0-android31.0\..\..\jar\androidx.lifecycle.lifecycle-common.jar:androidx/lifecycle/DispatchQueue.class, obj\Debug\net7.0-android\lp\135\jl\classes.jar:androidx/lifecycle/DispatchQueue.class
	at com.android.tools.r8.internal.JT.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:14)
	at com.android.tools.r8.internal.JT.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:22)
	at com.android.tools.r8.internal.HN.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:33)
	at com.android.tools.r8.internal.HN.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:10)
	at java.base/java.util.concurrent.ConcurrentHashMap.merge(ConcurrentHashMap.java:2048)
	at com.android.tools.r8.internal.HN.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:6)
	at com.android.tools.r8.graph.B2$a.e(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:4)
	at com.android.tools.r8.dex.b.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:110)
	at com.android.tools.r8.dex.b.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:28)
	at com.android.tools.r8.D8.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:25)
	at com.android.tools.r8.D8.d(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:606)
	at com.android.tools.r8.D8.c(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:1)
	at com.android.tools.r8.internal.Fj.a(R8_3.3.75_b7a6ff6b13548611571508fe72282c9167faa649161ca0013edfc92e19bd7e58:24)
	... 5 more
Directory 'obj\Debug\net7.0-android\lp\135' is from 'androidx.lifecycle.lifecycle-runtime-ktx.aar'.	safir_delivery		1
commented

@Arash1972

Thanks for the feedback. Update all your nugets to latest version and report if that solves the issue, please.

commented

Duplicate:

#717

commented

OK. You cannot bump MAUI dependencies.

As temp workaround try explicitly adding following PackageReferences:

		<PackageReference Include="Xamarin.AndroidX.Activity" Version="1.7.2" />
		<PackageReference Include="Xamarin.AndroidX.Activity.Ktx" Version="1.7.2" />

and yes - please report here if workaround works.

@moljac Adding the Xamarin.AndroidX packages fixed the issue for me. But I keep getting these warnings during build, which didn't show before nuget update.

19>JAVAC : warning : unknown enum constant Scope.LIBRARY_GROUP_PREFIX
19>JAVAC : warning : unknown enum constant Scope.LIBRARY
19>JAVAC : warning : unknown enum constant Scope.TESTS

My packages before update and before the error showed up.

<PackageReference Include="CommunityToolkit.Maui" Version="5.1.0" />
<PackageReference Include="CommunityToolkit.Maui.Markup" Version="3.1.0" />
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.0" />
<PackageReference Include="GoogleApi" Version="5.0.0" />
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
<PackageReference Include="IdentityModel.OidcClient" Version="5.2.1" />
<PackageReference Include="LazyCache" Version="2.4.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
<PackageReference Include="Polly" Version="7.2.3" />
<PackageReference Include="Riok.Mapperly" Version="2.8.0" />
<PackageReference Include="sqlite-net-pcl" Version="1.8.116" />
<PackageReference Include="SQLitePCLRaw.provider.dynamic_cdecl" Version="2.1.5" />
<PackageReference Include="StrongInject" Version="1.4.4" />
<PackageReference Include="Xamarin.Android.Google.BillingClient" Version="5.2.0" />
<PackageReference Include="Xamarin.Google.Maps.Utils" Version="1.3.4" />
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="118.1.0.1">

My packages after full update to latest versions:

<PackageReference Include="CommunityToolkit.Maui" Version="5.2.0" />     <--- UPDATED
<PackageReference Include="CommunityToolkit.Maui.Markup" Version="3.2.0" /> <--- UPDATED
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.0" />
<PackageReference Include="GoogleApi" Version="5.0.1" /> <--- UPDATED
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
<PackageReference Include="IdentityModel.OidcClient" Version="5.2.1" />
<PackageReference Include="LazyCache" Version="2.4.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
<PackageReference Include="Polly" Version="7.2.3" />
<PackageReference Include="Riok.Mapperly" Version="2.8.0" />
<PackageReference Include="sqlite-net-pcl" Version="1.8.116" />
<PackageReference Include="SQLitePCLRaw.provider.dynamic_cdecl" Version="2.1.5" />
<PackageReference Include="StrongInject" Version="1.4.4" />
<PackageReference Include="Xamarin.Android.Google.BillingClient" Version="6.0.0.1" /> <--- UPDATED
<PackageReference Include="Xamarin.Google.Maps.Utils" Version="1.3.4" />
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="118.1.0.2" /> <--- UPDATED
commented

@moljac Adding the Xamarin.AndroidX packages fixed the issue for me. But I keep getting these warnings during build, which didn't show before nuget update.

19>JAVAC : warning : unknown enum constant Scope.LIBRARY_GROUP_PREFIX
19>JAVAC : warning : unknown enum constant Scope.LIBRARY
19>JAVAC : warning : unknown enum constant Scope.TESTS

This is completely different issue:

#727

We provided fix few days ago.

My packages before update and before the error showed up.

<PackageReference Include="CommunityToolkit.Maui" Version="5.1.0" />
<PackageReference Include="CommunityToolkit.Maui.Markup" Version="3.1.0" />
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.0" />
<PackageReference Include="GoogleApi" Version="5.0.0" />
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
<PackageReference Include="IdentityModel.OidcClient" Version="5.2.1" />
<PackageReference Include="LazyCache" Version="2.4.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
<PackageReference Include="Polly" Version="7.2.3" />
<PackageReference Include="Riok.Mapperly" Version="2.8.0" />
<PackageReference Include="sqlite-net-pcl" Version="1.8.116" />
<PackageReference Include="SQLitePCLRaw.provider.dynamic_cdecl" Version="2.1.5" />
<PackageReference Include="StrongInject" Version="1.4.4" />
<PackageReference Include="Xamarin.Android.Google.BillingClient" Version="5.2.0" />
<PackageReference Include="Xamarin.Google.Maps.Utils" Version="1.3.4" />
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="118.1.0.1">

My packages after full update to latest versions:

<PackageReference Include="CommunityToolkit.Maui" Version="5.2.0" />     <--- UPDATED
<PackageReference Include="CommunityToolkit.Maui.Markup" Version="3.2.0" /> <--- UPDATED
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.0" />
<PackageReference Include="GoogleApi" Version="5.0.1" /> <--- UPDATED
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
<PackageReference Include="IdentityModel.OidcClient" Version="5.2.1" />
<PackageReference Include="LazyCache" Version="2.4.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
<PackageReference Include="Polly" Version="7.2.3" />
<PackageReference Include="Riok.Mapperly" Version="2.8.0" />
<PackageReference Include="sqlite-net-pcl" Version="1.8.116" />
<PackageReference Include="SQLitePCLRaw.provider.dynamic_cdecl" Version="2.1.5" />
<PackageReference Include="StrongInject" Version="1.4.4" />
<PackageReference Include="Xamarin.Android.Google.BillingClient" Version="6.0.0.1" /> <--- UPDATED
<PackageReference Include="Xamarin.Google.Maps.Utils" Version="1.3.4" />
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="118.1.0.2" /> <--- UPDATED

Any package[s] referencing older AX or GPS-FB-MLKit packages could be source of "duplicate classes". We did and will provide "alignment bumps" of nugets, so we ensure that published packages reference only the newest/latest in order to reduce this issue, but we cannot influence various libraries/packages we do not maintain. Those could be problematic in the future.

commented

Duplicates:

#717
#742
#747
#749