java.exe error JAVA0000: Type androidx.compose.runtime.Immutable is defined multiple times

Kim Strasser 2,016 Reputation points
2026-01-15T12:39:49.8066667+00:00

My Android project doesn´t build after I updated the MAUI workloads to version 10.0.101.1 and updated many NuGet packages in Visual Studio Community 2026 Version: 18.2.0:> 1>MSBUILD : java.exe error JAVA0000: Error in C:\Users\Kim Strasser.nuget\packages\xamarin.androidx.compose.runtime.annotation.android\1.10.0.1\buildTransitive\net10.0-android36.0....\aar\runtime-annotation-android.aar:classes.jar:androidx/compose/runtime/Immutable.class:

1>MSBUILD : java.exe error JAVA0000: Type androidx.compose.runtime.Immutable is defined multiple times: C:\Users\Kim Strasser.nuget\packages\xamarin.androidx.compose.runtime.annotation.android\1.10.0.1\buildTransitive\net10.0-android36.0....\aar\runtime-annotation-android.aar:classes.jar:androidx/compose/runtime/Immutable.class, C:\Users\Kim Strasser.nuget\packages\xamarin.androidx.compose.runtime.annotation.jvm\1.10.0.1\buildTransitive\net10.0-android36.0....\jar\runtime-annotation-jvm.jar:androidx/compose/runtime/Immutable.class 1>MSBUILD : java.exe error JAVA0000: Compilation failed 1>MSBUILD : java.exe error JAVA0000: java.lang.RuntimeException: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: C:\Users\Kim Strasser.nuget\packages\xamarin.androidx.compose.runtime.annotation.android\1.10.0.1\buildTransitive\net10.0-android36.0....\aar\runtime-annotation-android.aar:classes.jar 1>MSBUILD : java.exe error JAVA0000: androidx/compose/runtime/Immutable.class 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.xv.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:131) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.D8.main(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:5) 1>MSBUILD : java.exe error JAVA0000: Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: C:\Users\Kim Strasser.nuget\packages\xamarin.androidx.compose.runtime.annotation.android\1.10.0.1\buildTransitive\net10.0-android36.0....\aar\runtime-annotation-android.aar:classes.jar:androidx/compose/runtime/Immutable.class 1>MSBUILD : java.exe error JAVA0000: at Version.fakeStackEntry(Version_8.11.18.java:0) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.P.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:1) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.xv.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:82) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.xv.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:32) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.xv.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:31) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.xv.b(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:2) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.D8.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:30) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.D8.b(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:23) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.D8.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:28) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.xv.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:118) 1>MSBUILD : java.exe error JAVA0000: ... 1 more 1>MSBUILD : java.exe error JAVA0000: Caused by: com.android.tools.r8.internal.g: Type androidx.compose.runtime.Immutable is defined multiple times: C:\Users\Kim Strasser.nuget\packages\xamarin.androidx.compose.runtime.annotation.android\1.10.0.1\buildTransitive\net10.0-android36.0....\aar\runtime-annotation-android.aar:classes.jar:androidx/compose/runtime/Immutable.class, C:\Users\Kim Strasser.nuget\packages\xamarin.androidx.compose.runtime.annotation.jvm\1.10.0.1\buildTransitive\net10.0-android36.0....\jar\runtime-annotation-jvm.jar:androidx/compose/runtime/Immutable.class 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.yg0.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:21) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.O80.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:54) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.O80.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:10) 1>MSBUILD : java.exe error JAVA0000: at java.base/java.util.concurrent.ConcurrentHashMap.merge(ConcurrentHashMap.java:2056) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.O80.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:6) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.graph.z4$a.c(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:6) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.dex.c.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:56) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.dex.c.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:12) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.D8.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:33) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.D8.d(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:20) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.D8.c(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:8) 1>MSBUILD : java.exe error JAVA0000: at com.android.tools.r8.internal.xv.a(R8_8.11.18_94248c9a6fd57686ded562f231d18f14e8923ad1fe977e99b974a9bf901c8a48:28) 1>MSBUILD : java.exe error JAVA0000: ... 6 more 1>MSBUILD : java.exe error JAVA0000: ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== ========== Build completed at 11:39 and took 01:47,338 minutes ==========

How can I solve the issues?

Screenshot 2026-01-15 114219

Developer technologies | .NET | .NET MAUI
0 comments No comments
{count} votes

Answer accepted by question author
  1. Jack Dang (WICLOUD CORPORATION) 8,220 Reputation points Microsoft External Staff Moderator
    2026-01-16T04:34:41.2433333+00:00

    Hi @Kim Strasser ,

    Thanks for reaching out.

    From the details you shared, it looks like your build is failing because the class androidx.compose.runtime.Immutable is defined in two different packages at the same time: one in the Android-specific artifact (runtime-annotation-android.aar) and one in the JVM artifact (runtime-annotation-jvm.jar). When the Android build system tries to compile, it sees both copies and doesn’t know which one to use, which causes the JAVA0000 error.

    This usually happens after updating MAUI workloads and NuGet packages because some Compose runtime packages get pulled in for both Android and JVM targets. In most MAUI projects, you only need the Android artifacts, so the JVM ones can safely be removed.

    Here’s what you can do:

    1. Remove unnecessary Compose packages - in your NuGet references, check for any Xamarin.AndroidX.Compose.* packages, especially the -JVM ones, and remove them if your project doesn’t need Compose UI. Keep only the Android-specific packages.
    2. Clear NuGet caches - old cached packages can sometimes conflict. You can run:
         dotnet nuget locals all --clear
      
      Then restore your packages.
    3. Align package versions - make sure all AndroidX and Compose packages use the same version to avoid version mismatches.
    4. Clean and rebuild - delete bin and obj folders, then do a full rebuild in Visual Studio (Build -> Clean Solution -> Rebuild Solution).
    5. Verify your MAUI workloads (optional) - since this happened after updating, it’s a good idea to check that your workloads are fully up-to-date and repaired:
         dotnet workload list
         dotnet workload repair
      

    Optional: if some transitive dependency still brings in the JVM artifact, you can exclude it in your .csproj like this:

    <PackageReference Include="Xamarin.AndroidX.Compose.Runtime.Annotation.JVM" Version="1.10.0.1">
      <ExcludeAssets>runtime;build</ExcludeAssets>
    </PackageReference>
    

    Following these steps usually resolves the duplicate class issue and gets your MAUI Android project building again.

    Hope this helps! If my answer was helpful - kindly follow the instructions here so others with the same problem can benefit as well.

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.