【问题标题】:SignalR Library: UNEXPECTED TOP-LEVEL EXCEPTIONSignalR 库:意外的顶级异常
【发布时间】:2016-01-06 19:51:35
【问题描述】:

我正在尝试使用由 Microsoft 人员创建的 SignarR client library。但是当我尝试运行 [signalr-clent-test-integration-android] 并将其加载到模拟器或设备中时,我收到以下错误。根据研究,我发现存在重叠的依赖关系,出于某种原因,Java 不喜欢它。这里的依赖关系是 [signalr-client-sdk-android] 使用的 [signalr-client-skd] 库和 [signalr-clent-test-integration 使用的 [signalr-client-test-integration-base] 库-android] 安卓应用程序。

那么,请有人指导如何解决这个问题?不确定微软的人是否甚至测试过这个测试应用程序。任何帮助/指导将不胜感激。

    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

【问题讨论】:

    标签: android signalr dex


    【解决方案1】:

    相关错误为bad class file magic (cafebabe) or version (0034.0000)。版本 0x34 适用于 java 8 类,android 目前不支持。

    最好的办法是尝试重建与 java 1.7 兼容的客户端 jar。

    【讨论】:

      【解决方案2】:

      在进行了大量的谷歌搜索并将我的头撞到墙上之后,我们终于弄明白了。这肯定与 Java 8 有关。因此,如果您有相互引用的库,则目前无法在 Android 中使用 Java 8。

      解决这个问题的方法不仅仅是告诉 Android 使用 1.7 或更早版本的编译器,而是在您的计算机上物理安装 1.7 JDK,并将 JDK 位置设置为指向它。这可以在 [Project Structure] -> [SDK Location] -> [JDK Location] 下找到。呼!!!

      感谢我的同事在他的机器上并行安装了 1.7 和 1.6,他将 JDK 位置切换到 1.7,它就可以正常工作了!因此,我必须下载 1.7.x JDK 并将其安装在我的计算机上才能工作!这很荒谬但有效! :)

      如果是这种情况,默认设置中的构建、执行、部署下的编译器设置到底是什么?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 2015-09-07
        • 2015-08-29
        • 1970-01-01
        相关资源
        最近更新 更多