androidxamarinxamarin.formsxamarin.android

Xamarin android project "java.exe" exited with code 1


I want to build my xamarin android application with android 12 target framework on release mode. The build fails with the following

"Xamarin.Android.D8.targets(51,5): error MSB6006:"java.exe" exited with code 1."

error.

Solutions I've tried so far are :

1 - Download the latest proguard version and replace the files inside /android-sdk/tools/proguard and create a proguard config file under android project making sure the file is saved with UTF-8.

2 - Make sure all the nuget packages are compatible by creating a blank sample project and adding each nuget from my original project and make sure it builds.

3 - Delete bin and object files and rebuild the project.

Doing some online research that I've found out that this particular version (Xamarin.Android.D8.targets(51,5)) of the 'java.exe exited with code 1' error type is mostly associated with either proguard or incompability however I am unable to locate the source of the problem, any kind of help is appreciated.

Here are some relevant information:

I do have the msbuild output level set to diagnostics but i don't think i can share the whole 260k line output file. Linking is set to "Sdk assemblies only".

SDK

JDK

Android Options

6 > Done executing task "WriteLinesToFile".
6 > Done building target"_CleanRecordFileWrites" in project "TestApp1.Android.csproj".

6 > Build FAILED.


6 > "C:\Users\TestUser\source\Workspaces\TestApp1\TestApp1.Android\TestApp1.Android.csproj" (Rebuild;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;DebugSymbolsProjectOutputGroup;DebugSymbolsProjectOutputGroupDependencies;DocumentationProjectOutputGroup;DocumentationProjectOutputGroupDependencies;SatelliteDllsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;SGenFilesOutputGroup;SGenFilesOutputGroupDependencies target) (1) ->

6 > (_CompileToDalvik target) ->

6 > C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Xamarin\Android\Xamarin.Android.D8.targets(51,5): error MSB6006: "java.exe" exited with code 1.

11 Warning(s)
1 Error(s)

6>Time Elapsed 00:00:58.23 ========== Rebuild All: 5 succeeded, 1 failed, 0 skipped ==========

There is no output from proguard inside the build output.


Solution

  • I've found the problem. The project was developed on android 11 and could build without a problem, the problem began when the target framework version was changed android 12, first the build error was:

    'Xamarin.Android.Support.v4' is using '[assembly: Java.Interop.JavaLibraryReferenceAttribute]' , which is no longer supported. Use a newer version of this NuGet package or notify the library author.

    So we made sure that all nuget packages could run on android 12 than the build error changed to:

    is also present at androidmanifest.xml:22:18-91 value (android.support.v4.app.corecomponentfactory)

    this is was just one of the several java errors and all the errors were related to android.support.v4.app library. So during my first research I've found from the in xamarin community that some were able to solve their problem by adding the code :

    tools:node="replace"

    to their AndroidManifest.xml file under the <application> tag. So I did just that to see the results and the error than changed to:

    "java.exe" exited with code 1

    after going back to the first "android.support.v4.app" error and doing some more research about it online I've found that android studio users could solve these type of errors by setting the "useAndroidX = true" in their build.gradle file. Not having a build.gradle file in my project I've just decided delete the code I previously added to my AndroidManifest.xml and to add the "Xamarin.AndroidX.Core" Nuget package to my android project, after doing so the error changed to:

    Could not find Jetbrains.Annotations

    So after also adding the "Xamarin.Jetbrains.Annotations" nuget package to my project ,it now builds without an error.