Android Build Fail

Just upgraded to 0.25, and included the Firebase API in my project. All setup correctly, but build is failing due to:

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/caseywilliams/Documents/HaygroveApp/HaygroveApp/build/Android/Debug/HaygroveApp/app/build.gradle' line: 122

* What went wrong:
A problem occurred evaluating project ':app'.
> java.lang.UnsupportedClassVersionError: com/google/gms/googleservices/GoogleServicesPlugin : Unsupported major.minor version 51.0

Here is my Uno config:

Uno 0.35.6 (build 3582) OS X 10.11 i386 a76249a
Uno settings
  Android.NDK.Directory    /usr/local/share/uno/SDKs/AndroidNDK
  Android.SDK.BuildToolsVersion (../../../Library/Application Support/Fusetools/Fuse/Android) 23.0.1
  Android.SDK.Directory    /usr/local/share/uno/SDKs/AndroidSDK
  AndroidNdkDirectory      /usr/local/share/uno/SDKs/AndroidNDK
  AndroidSdkDirectory      /usr/local/share/uno/SDKs/AndroidSDK
  Ant.Directory            /usr/local/share/uno/SDKs/Ant
  ApacheAntDirectory       /usr/local/share/uno/SDKs/Ant
  AppLoaderDirectory       (/Applications/Fuse.app/Contents/Uno) .
  DefaultPackages          (/Applications/Fuse.app/Contents/Uno) Fuse
                           (/Applications/Fuse.app/Contents/Uno) FuseJS
  DisasmApp                (/Applications/Fuse.app/Contents/Uno) Uno Disasm.app
  IsRoot                   (/Applications/Fuse.app/Contents/Uno) false
  Java.JDK.Directory       /Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/Home
  JavaJdkDirectory         /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
  ModulesDirectory         (/Applications/Fuse.app/Contents) Modules
  Mono                     /Applications/Fuse.app/Contents/Mono/bin/mono
  NativeLibDirectory       (/Applications/Fuse.app/Contents/Uno) .
  PackageSearchPaths       (/Applications/Fuse.app/Contents) Packages
                           /usr/local/share/uno/Packages
  PerfCmpExe               (/Applications/Fuse.app/Contents/Uno) uno-perf-cmp.exe
  PerfTestExe              (/Applications/Fuse.app/Contents/Uno) uno-perf-test.exe
  PluginDlls               (/Applications/Fuse.app/Contents/Uno) Uno.Compiler.Extensions.dll
  RuntimeDll               (/Applications/Fuse.app/Contents/Uno) Uno.Runtime.Core.dll
  SdkConfig                /Users/caseywilliams/Library/Application Support/Fusetools/Fuse/Android/.sdkconfig
  TemplatesDirectory       (/Applications/Fuse.app/Contents) Templates
  TestExe                  (/Applications/Fuse.app/Contents/Uno) uno-test.exe
  UnoExe                   (/Applications/Fuse.app/Contents) Uno/uno.exe
Config files
  /Applications/Fuse.app/Contents/Uno/.unoconfig
  /Applications/Fuse.app/Contents/Uno/common.unoconfig
  /usr/local/share/uno/SDKs/.sdkconfig
  ../../../Library/Application Support/Fusetools/Fuse/Android/.sdkconfig
  /Applications/Fuse.app/Contents/Uno/config.unoconfig
  /Applications/Fuse.app/Contents/.unoconfig
  /Applications/Fuse.app/Contents/Fuse.unoconfig
.NET assemblies
  /Applications/Fuse.app/Contents/Mono/lib/mono/4.5/mscorlib.dll
  /Applications/Fuse.app/Contents/Uno/uno.exe
  /Applications/Fuse.app/Contents/Uno/Uno.CLI.dll
  /Applications/Fuse.app/Contents/Uno/Uno.Common.dll
  /Applications/Fuse.app/Contents/Mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll
  /Applications/Fuse.app/Contents/Mono/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll
  /Applications/Fuse.app/Contents/Uno/stuff.exe
  /Applications/Fuse.app/Contents/Uno/Mono.Options.dll
  /Applications/Fuse.app/Contents/Uno/Uno.Configuration.dll

And my sdkConfig:

"AndroidSDK":{"Path":"/usr/local/share/uno/SDKs/AndroidSDK"},"AndroidNDK":{"Path":"/usr/local/share/uno/SDKs/AndroidNDK"},"JDK":{"Path":"/Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk","PathPattern":"*.jdk"},"Ant":{"Path":"/usr/local/share/uno/SDKs/Ant"},"BuildToolsVersion":"23.0.1"}

I’m running OSX.

Quick question: did run the command to update the Android build tools as highlighted in the release notes? Fuse

NOTE: After upgrading to Fuse 0.25 it is necessary to re-run the command fuse install android to be able to deploy to Android devices

Yup re-ran

I’m not getting the same error, but failing to build/preview for Android. I too have run the fuse install android command and still not successfully building.

here’s the error i’m seeing:

[dx] Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0

I have no idea how to address this. Thanks for any help.

I think it’s something to do with different JDKs at compile time than runtime.

Hey dude!

Could you try the following on your machine

  • delete /usr/local/share/uno/SDKs/.sdkconfig
  • run uno config again and paste the results here

Also could you try building adding the following to your build arguments:

--set:Config.Java.JDK.Directory="/Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/Home"

This should give us enough data to kill this one :slight_smile:

Hey Chris,

Yeah sure.

Here’s my Uno config after deleting the .sdkconfig

Caseys-MBP:~ caseywilliams$ uno config
Uno 0.35.6 (build 3582) OS X 10.11 i386 a76249a

Uno settings
  Android.NDK.Directory    /usr/local/share/uno/SDKs/AndroidNDK
  Android.SDK.BuildToolsVersion (Library/Application Support/Fusetools/Fuse/Android) 23.0.1
  Android.SDK.Directory    /usr/local/share/uno/SDKs/AndroidSDK
  Ant.Directory            /usr/local/share/uno/SDKs/Ant
  AppLoaderDirectory       (/Applications/Fuse.app/Contents/Uno) .
  DefaultPackages          (/Applications/Fuse.app/Contents/Uno) Fuse
                           (/Applications/Fuse.app/Contents/Uno) FuseJS
  DisasmApp                (/Applications/Fuse.app/Contents/Uno) Uno Disasm.app
  IsRoot                   (/Applications/Fuse.app/Contents/Uno) false
  Java.JDK.Directory       /Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/Home
  ModulesDirectory         (/Applications/Fuse.app/Contents) Modules
  Mono                     /Applications/Fuse.app/Contents/Mono/bin/mono
  NativeLibDirectory       (/Applications/Fuse.app/Contents/Uno) .
  PackageSearchPaths       (/Applications/Fuse.app/Contents) Packages
                           /usr/local/share/uno/Packages
  PerfCmpExe               (/Applications/Fuse.app/Contents/Uno) uno-perf-cmp.exe
  PerfTestExe              (/Applications/Fuse.app/Contents/Uno) uno-perf-test.exe
  PluginDlls               (/Applications/Fuse.app/Contents/Uno) Uno.Compiler.Extensions.dll
  RuntimeDll               (/Applications/Fuse.app/Contents/Uno) Uno.Runtime.Core.dll
  SdkConfig                /Users/caseywilliams/Library/Application Support/Fusetools/Fuse/Android/.sdkconfig
  TemplatesDirectory       (/Applications/Fuse.app/Contents) Templates
  TestExe                  (/Applications/Fuse.app/Contents/Uno) uno-test.exe
  UnoExe                   (/Applications/Fuse.app/Contents) Uno/uno.exe

Config files
  /Applications/Fuse.app/Contents/Uno/.unoconfig
  /Applications/Fuse.app/Contents/Uno/common.unoconfig
  Library/Application Support/Fusetools/Fuse/Android/.sdkconfig
  /Applications/Fuse.app/Contents/Uno/config.unoconfig
  /Applications/Fuse.app/Contents/.unoconfig
  /Applications/Fuse.app/Contents/Fuse.unoconfig

.NET assemblies
  /Applications/Fuse.app/Contents/Mono/lib/mono/4.5/mscorlib.dll
  /Applications/Fuse.app/Contents/Uno/uno.exe
  /Applications/Fuse.app/Contents/Uno/Uno.CLI.dll
  /Applications/Fuse.app/Contents/Uno/Uno.Common.dll
  /Applications/Fuse.app/Contents/Mono/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll
  /Applications/Fuse.app/Contents/Mono/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll
  /Applications/Fuse.app/Contents/Uno/stuff.exe
  /Applications/Fuse.app/Contents/Uno/Mono.Options.dll
  /Applications/Fuse.app/Contents/Uno/Uno.Configuration.dll

Build Completed!!

Caseys-MBP:authexample caseywilliams$ fuse build -t=Android -DGRADLE --set:Config.Java.JDK.Directory="/Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/Home"
Uno 0.35.6 (build 3582) OS X 10.11 i386 a76249a

Configuring (0.75s)
Compiling syntax tree (2.03s)
Generating code and data (5.15s)
Building Android app
2/2: AuthExample.apk
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
(133.45s)

Build completed in 141.40 seconds

Thanks all! :smiley:

P.S
After this I’ll no longer need to set the JDK version as an argument when building right?

Well… the AuthExample app from Chris’ Firebase Wiki but when building my app I get this:

Generating code and data (4.95s)
Building Android app
2/2: HaygroveApp.apk
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Dex: Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;
    	at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
    	at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
    	at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
    	at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    	at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
    	at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
    	at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
    	at com.android.dx.command.dexer.Main.run(Main.java:277)
    	at com.android.dx.command.dexer.Main.main(Main.java:245)
    	at com.android.dx.command.Main.main(Main.java:106)
    

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithDexForArm7Debug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_72.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
please apply google-services plugin at the bottom of the build file.

Hmm, that’s a weird one. It’s suggesting that the support libs are included twice.

Have your tried a uno clean before rebuilding with gradle?

That fixed it! Thanks :slight_smile:

Boom! back to building apps for both of us!
Thanks for the feedback mate