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
- Using VS2022 create new MAUI for .NET 7.0
- add reference to xamarin.androidx.lifecycle.common 2.6.1.2
- 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
Thanks for the feedback. Update all your nugets to latest version and report if that solves the issue, please.
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
@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:
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.