I have JDK 1.8 Path set in Visual Studio and I can compile Android 7.0. application without any problems.
In order to automatically build signed APK I also have a PS1 script which is supposed to compile the same application using command line MSBUILD. I set JAVA_HOME, JDK_HOME to JDK 1.8. but MSBUILD still uses JDK 1.7. and I get error "Unsupported class version number 52..."
Is there a way how to set JDK location when invoking MSBUILD from command line?
What is even more confusing is that the default Java version on this machine is 1.8 (if I type java -version I get JDK 1.8.0_111.)
UPDATE When executing build with detailed login I can confirm that Xamarin sees JDK 1.8
ResolveSdksTask Outputs:
AndroidApiLevel: 25
AndroidApiLevelName: 25
AndroidNdkPath: D:\Users\milan\Documents\Android\ndk\android-ndk-r10e
AndroidSdkBuildToolsPath: D:\Utilities\android-sdk\build-tools\25.0.0
AndroidSdkBuildToolsBinPath: D:\Utilities\android-sdk\build-tools\25.0.0
AndroidSdkPath: D:\Utilities\android-sdk
JavaSdkPath: C:\Program Files\Java\jdk1.8.0_111
MonoAndroidBinPath: C:\Program Files (x86)\MSBuild\Xamarin\Android
MonoAndroidToolsPath: C:\Program Files (x86)\MSBuild\Xamarin\Android
MonoAndroidIncludePath:
TargetFrameworkVersion: v7.0
ZipAlignPath: D:\Utilities\android-sdk\build-tools\25.0.0
SupportedApiLevel: 24
AndroidSequencePointsMode: None
Found Android SDK. API levels: 10, 15, 19, 21, 22, 23, 24
But then later on Task "AdjustJavacVersionArguments" changes Javac version to 1.7:
Task "AdjustJavacVersionArguments"
ToolPath: C:\Program Files\Java\jdk1.8.0_111\\bin
ToolExe: javac.exe
EnableProguard: False
EnableMultiDex: True
Javac TargetVersion adjusted to: 1.7
Javac SourceVersion adjusted to: 1.7
Done executing task "AdjustJavacVersionArguments".
Any ideas?