0

I am trying to work with the SignarR client library created by folks at Microsoft. But when I try to run the [signalr-clent-test-integration-android] and load it in either simulator or the device I get the following error. based on the research I have found out that there is overlapping dependency and for some reason Java doesn't like it. The dependency here is for the [signalr-client-skd] library used by [signalr-client-sdk-android] and [signalr-client-test-integration-base] libraries which is used by [signalr-clent-test-integration-android] android app.

So, could some one guide on how to solve this issue please? Not sure whether folks at Microsoft even tested this test app at all. Any help/guidance would be greatly appreciated.

    Executing tasks: [:signalr-client-test-integration-android:assembleDebug]

Configuration on demand is an incubating feature.
:signalr-client-test-integration-android:preBuild
:signalr-client-test-integration-android:compileDebugNdk
:signalr-client-sdk:compileJava UP-TO-DATE
:signalr-client-sdk:processResources UP-TO-DATE
:signalr-client-sdk:classes UP-TO-DATE
:signalr-client-sdk:jar UP-TO-DATE
:signalr-client-sdk-android:compileLint
:signalr-client-sdk-android:copyReleaseLint UP-TO-DATE
:signalr-client-sdk-android:preBuild
:signalr-client-sdk-android:preReleaseBuild
:signalr-client-sdk-android:checkReleaseManifest
:signalr-client-sdk-android:preDebugBuild
:signalr-client-sdk-android:preDebugTestBuild
:signalr-client-sdk-android:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE
:signalr-client-sdk-android:prepareComAndroidSupportSupportV42103Library UP-TO-DATE
:signalr-client-sdk-android:prepareReleaseDependencies
:signalr-client-sdk-android:compileReleaseAidl UP-TO-DATE
:signalr-client-sdk-android:compileReleaseRenderscript UP-TO-DATE
:signalr-client-sdk-android:generateReleaseBuildConfig UP-TO-DATE
:signalr-client-sdk-android:generateReleaseAssets UP-TO-DATE
:signalr-client-sdk-android:mergeReleaseAssets UP-TO-DATE
:signalr-client-sdk-android:generateReleaseResValues UP-TO-DATE
:signalr-client-sdk-android:generateReleaseResources UP-TO-DATE
:signalr-client-sdk-android:mergeReleaseResources UP-TO-DATE
:signalr-client-sdk-android:processReleaseManifest UP-TO-DATE
:signalr-client-sdk-android:processReleaseResources UP-TO-DATE
:signalr-client-sdk-android:generateReleaseSources UP-TO-DATE
:signalr-client-sdk-android:compileReleaseJava UP-TO-DATE
:signalr-client-sdk-android:extractReleaseAnnotations UP-TO-DATE
:signalr-client-sdk-android:mergeReleaseProguardFiles UP-TO-DATE
:signalr-client-sdk-android:processReleaseJavaRes UP-TO-DATE
:signalr-client-sdk-android:packageReleaseJar UP-TO-DATE
:signalr-client-sdk-android:compileReleaseNdk UP-TO-DATE
:signalr-client-sdk-android:packageReleaseJniLibs UP-TO-DATE
:signalr-client-sdk-android:packageReleaseLocalJar UP-TO-DATE
:signalr-client-sdk-android:packageReleaseRenderscript UP-TO-DATE
:signalr-client-sdk-android:packageReleaseResources UP-TO-DATE
:signalr-client-sdk-android:bundleRelease UP-TO-DATE
:signalr-client-test-integration-android:preDebugBuild
:signalr-client-test-integration-android:checkDebugManifest
:signalr-client-test-integration-android:preReleaseBuild
:signalr-client-test-integration-base:compileJava UP-TO-DATE
:signalr-client-test-integration-base:processResources UP-TO-DATE
:signalr-client-test-integration-base:classes UP-TO-DATE
:signalr-client-test-integration-base:jar UP-TO-DATE
:signalr-client-test-integration-android:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE
:signalr-client-test-integration-android:prepareComAndroidSupportSupportV42103Library UP-TO-DATE
:signalr-client-test-integration-android:prepareSignalRSignalrClientSdkAndroidUnspecifiedLibrary UP-TO-DATE
:signalr-client-test-integration-android:prepareDebugDependencies
:signalr-client-test-integration-android:compileDebugAidl UP-TO-DATE
:signalr-client-test-integration-android:compileDebugRenderscript UP-TO-DATE
:signalr-client-test-integration-android:generateDebugBuildConfig UP-TO-DATE
:signalr-client-test-integration-android:generateDebugAssets UP-TO-DATE
:signalr-client-test-integration-android:mergeDebugAssets UP-TO-DATE
:signalr-client-test-integration-android:generateDebugResValues UP-TO-DATE
:signalr-client-test-integration-android:generateDebugResources UP-TO-DATE
:signalr-client-test-integration-android:mergeDebugResources UP-TO-DATE
:signalr-client-test-integration-android:processDebugManifest UP-TO-DATE
:signalr-client-test-integration-android:processDebugResources UP-TO-DATE
:signalr-client-test-integration-android:generateDebugSources UP-TO-DATE
:signalr-client-test-integration-android:compileDebugJava
Note: C:\IM1\Device Projects\Android\SignalR\SignalR\signalr-client-test-integration-android\src\main\java\microsoft\aspnet\signalr\client\test\integration\android\MainActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:signalr-client-test-integration-android:preDexDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
    at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
    at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
    at com.android.dx.command.dexer.Main.processClass(Main.java:704)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
    at com.android.dx.command.dexer.Main.access$300(Main.java:83)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
    at com.android.dx.command.dexer.Main.processOne(Main.java:632)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
    at com.android.dx.command.dexer.Main.run(Main.java:246)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)
...while parsing microsoft/aspnet/signalr/client/test/integration/ApplicationContext$1.class

1 error; aborting

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
    at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
    at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
    at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
    at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
    at com.android.dx.command.dexer.Main.processClass(Main.java:704)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
    at com.android.dx.command.dexer.Main.access$300(Main.java:83)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
    at com.android.dx.command.dexer.Main.processOne(Main.java:632)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
    at com.android.dx.command.dexer.Main.run(Main.java:246)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)
...while parsing microsoft/aspnet/signalr/client/Action.class

1 error; aborting

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':signalr-client-test-integration-android:preDexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\adt-bundle\sdk\build-tools\21.1.2\dx.bat --dex --output C:\IM1\Device Projects\Android\SignalR\SignalR\signalr-client-test-integration-android\build\intermediates\pre-dexed\debug\signalr-client-sdk-22e3214ec8048293555e1dae6b0ea2a34310b794.jar C:\IM1\Device Projects\Android\SignalR\SignalR\signalr-client-sdk\build\libs\signalr-client-sdk.jar
Error Code:
    1
Output:

    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
        at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
        at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
        at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
        at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
        at com.android.dx.command.dexer.Main.processClass(Main.java:704)
        at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
        at com.android.dx.command.dexer.Main.access$300(Main.java:83)
        at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
        at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
        at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
        at com.android.dx.command.dexer.Main.processOne(Main.java:632)
        at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
        at com.android.dx.command.dexer.Main.run(Main.java:246)
        at com.android.dx.command.dexer.Main.main(Main.java:215)
        at com.android.dx.command.Main.main(Main.java:106)
    ...while parsing microsoft/aspnet/signalr/client/Action.class

    1 error; aborting


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.289 secs
JesusFreke
  • 19,784
  • 5
  • 65
  • 68
Vincy
  • 1,078
  • 1
  • 9
  • 16

2 Answers2

1

The relevant error is bad class file magic (cafebabe) or version (0034.0000). Version 0x34 is for java 8 classes, which android does not currently support.

Your best bet is to try rebuild the client jar with java 1.7 compatibility.

JesusFreke
  • 19,784
  • 5
  • 65
  • 68
0

After doing a lot of google searches and banging my head against the wall, we finally figured it out. It is definitely something to do with Java 8. Therefore you cannot use Java 8 in Android for now if you have libraries referencing each other.

The solution for this problem is not just telling the Android to use compiler to 1.7 or earlier but having the 1.7 JDK installed physically on your computer and setting the JDK location to point to it. This can be found under [Project Structure] -> [SDK Location] -> [JDK Location]. Phew!!!

Thanks to my colleague who had 1.7 and 1.6 installed parallel on his machine and he switched the JDK Location to 1.7 and it just worked! So, I had to download the 1.7.x JDK and installed it on my computer in order to work! This is ridiculous but works! :)

If this is the case what the heck that Compiler setting is there for under Build, Execution, Deployment in Default Settings?

Vincy
  • 1,078
  • 1
  • 9
  • 16