我正在使用谷歌播放服务版本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))
请帮我解决这个问题。
提前致谢。
答案 0 :(得分:0)
而不是从谷歌服务中导入所有模块
compile 'com.google.android.gms:play-services:7.5.0'
仅导入您需要的模块。检查this page。
注意:如果您应用中的方法引用数超过65K 限制,您的应用程序可能无法编译。您可以缓解这种情况 通过仅指定特定Google来编译应用时出现问题 播放您的应用使用的服务API,而不是所有这些API。