意外的顶级例外:在Android工作室

时间:2015-07-10 07:41:21

标签: android android-studio

我正在使用谷歌播放服务版本7.5.0并在运行项目时收到以下提到的错误。

我的项目包含2个模块。 以下是每个模块的build.gradle文件。

第1单元:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 22
    buildToolsVersion "23.0.0 rc3"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:22.2.0'
    compile 'com.google.android.gms:play-services:7.5.0'
}

第2单元:

apply plugin: 'com.android.library'

android {

    compileSdkVersion 22
    buildToolsVersion "23.0.0 rc3"


    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':module1')
}

这是app的build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "23.0.0 rc3"

    defaultConfig {
        applicationId "com.vserv.offerwall"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }

    dexOptions {
        jumboMode true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile project(':module2')
}
repositories {
    flatDir {
        dirs 'libs'
    }
}

当我构建应用程序时,它会成功构建。但是当我试图运行应用程序时,我得到了下面提到的错误。

  

意外的顶级例外情况:   com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]中:65536       在com.android.dx.merge.DexMerger $ 6.updateIndex(DexMerger.java:502)       在com.android.dx.merge.DexMerger $ IdMerger.mergeSorted(DexMerger.java:277)       在com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)       在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)       在com.android.dx.merge.DexMerger.merge(DexMerger.java:189)       在com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)       在com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)       在com.android.dx.command.dexer.Main.run(Main.java:277)       在com.android.dx.command.dexer.Main.main(Main.java:245)       在com.android.dx.command.Main.main(Main.java:106)   错误:任务':app:dexDebug'的执行失败。    com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.7.0_45 \ bin \ java.exe''以非完成零退出值2

我做了一些谷歌并找到了下面提到的链接。

Unable to execute dex: method ID not in [0, 0xffff]: 65536

我试过这个并编辑了应用程序gradle文件,将multiDexEnabled true添加到defaultConfig和compile 'com.android.support:multidex:1.0.0'依赖项中。

之后,上述错误得到解决,然后在运行应用程序时出现了另一个错误。

  

:app:shrinkDebugMultiDexComponents FAILED   错误:任务':app:shrinkDebugMultiDexComponents'的执行失败。   java.io.IOException:无法读取[D:\ StudioWorkspace \ SampleSDKDemoProject \ app \ build \ intermediates \ multi-dex \ debug \ allclasses.jar](无法处理类[org / fmod / FMODAudioDevice.class]( 256))

请帮我解决这个问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

而不是从谷歌服务中导入所有模块

compile 'com.google.android.gms:play-services:7.5.0'

仅导入您需要的模块。检查this page

  

注意:如果您应用中的方法引用数超过65K   限制,您的应用程序可能无法编译。您可以缓解这种情况   通过仅指定特定Google来编译应用时出现问题   播放您的应用使用的服务API,而不是所有这些API。