【问题标题】:UNEXPECTED TOP-LEVEL EXCEPTION adding new Module to Android Studio projectUNEXPECTED TOP-LEVEL EXCEPTION 将新模块添加到 Android Studio 项目
【发布时间】:2014-08-12 09:00:31
【问题描述】:

添加简单的 Java 库(Android Studio 中的新模块)后出现令人沮丧的错误。我已经阅读了许多类似的问题,但找不到任何解决方案,有人可以帮助我吗?

Error:Execution failed for task ':KeepLinkMain:preDexDebug'.

com.android.ide.common.internal.LoggedErrorException:无法运行命令: C:\Android\android-sdk\build-tools\19.1.0\dx.bat --dex --output C:...\AndroidStudioProjects\KeepLink\KeepLinkMain\build\intermediates\pre-dexed\debug\KeepLinkLib- d6db361e6605649280566ee9a3143d04322844dc.jar C:...\AndroidStudioProjects\KeepLink\KeepLinkLib\build\libs\KeepLinkLib.jar 错误代码: 1 输出: 意外的顶级异常: com.android.dx.cf.iface.ParseException:坏类文件魔术(cafebabe)或版本(0034.0000) 在 com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472) 在 com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406) 在 com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388) 在 com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251) 在 com.android.dx.command.dexer.Main.processClass(Main.java:665) 在 com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) 在 com.android.dx.command.dexer.Main.access$600(Main.java:78) 在 com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572) 在 com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 在 com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 在 com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) 在 com.android.dx.command.dexer.Main.processOne(Main.java:596) 在 com.android.dx.command.dexer.Main.processAllFiles(Main.java:498) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:264) 在 com.android.dx.command.dexer.Main.run(Main.java:230) 在 com.android.dx.command.dexer.Main.main(Main.java:199) 在 com.android.dx.command.Main.main(Main.java:103) ...同时解析 com/rmpt/keeplinklib/Constants.class 1个错误;中止

主模块 build.gradle 文件

    apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'
    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 19
        versionCode 1
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            debuggable false
            jniDebugBuild false
        }
    }
    dexOptions {
        incremental true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    productFlavors {
    }
}

dependencies {
    compile project(':KeepLinkLib')
    compile files('lib/gson-2.2.4.jar')
}

Java 库 build.gradle 文件

apply plugin: 'java'

【问题讨论】:

    标签: android class exception


    【解决方案1】:

    我遇到了类似的问题,并且能够通过将以下几行添加到 Java 库的 build.gradle apply plugin: 行下方来解决它:

    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
    

    我还必须从主模块的 build.gradle 中删除 compileOptions

    【讨论】:

    • 这对我有用。我不知道为什么我把它改成 1_8,但它必须是 1_7。
    【解决方案2】:

    对于使用不同语法的实验性 gradle 版本,您必须这样编写:

    apply plugin: 'com.android.model.application'
    //apply plugin: 'java' //do not include this line
    model {
        android {
            compileOptions.with {
                sourceCompatibility = JavaVersion.VERSION_1_7
                targetCompatibility = JavaVersion.VERSION_1_7
            }
            ... //rest of gradle code
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      相关资源
      最近更新 更多