意外的顶级异常:com.android.dex.DexIndexOverflowException:方法 ID 不在 [0, 0xffff] 中:65536
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
我的 Gradle 文件中有以下依赖项:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "packagename"
minSdkVersion 10
targetSdkVersion 23
}
sourceSets {
main {
jni.srcDirs = []
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:23.0.1'
compile files('libs/FLurry_3.2.2.jar')
compile files('libs/pixel-perfect-collision.jar')
compile files('libs/twitter4j-core-3.0.3.jar')
compile project(':zip_file')
compile project(':andEngine')
compile project(':andEnginePhysicsBox2DExtension')
compile project(':downloader_library')
compile project(':viewPagerLibrary')
compile 'com.google.android.gms:play-services:8.1.0'
compile 'org.apache.commons:commons-lang3:3.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:23.0.1'
}
在构建 gradle 文件时出现以下错误:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
为了解决这个错误,我已经添加了 multidex 依赖项:
compile 'com.android.support:multidex:1.0.1'
还在循环..
已编辑:问题已经解决,所以不要尝试复制它,解决方案如下..!!
希望得到帮助!
谢谢。
你应该添加
multiDexEnabled true
在build.gradle
defaultConfig {
applicationId 'pkg'
minSdkVersion
targetSdkVersion
versionCode
versionName
// Enable MultiDexing: https://developer.android.com/tools/building/multidex.html
multiDexEnabled true
}
这意味着您的应用超过了 android 应用的 65k 方法计数限制。
看来您正在使用 google 庞大的播放服务。
compile 'com.google.android.gms:play-services:8.1.0'
您可以通过仅使用上面相同 link 中显示的您需要的播放服务来减少这种情况。
例如,如果您的应用只需要 gcm,您可以使用它的子集,例如:
com.google.android.gms:play-services-gcm:8.1.0
等等
当您的整个项目有超过 64000
个方法时,就会出现此问题。
所以你必须添加对应用程序 build.gradle
文件
的依赖
compile 'com.android.support:multidex:1.0.0'
然后将此标签添加到AndrodManifest.xml
到应用程序项
<application
...
android:name="android.support.multidex.MultiDexApplication">
如果您的应用使用扩展应用程序 class 添加此代码
@Override
public void attachBaseContext(Context base) {
MultiDex.install(base);
super.attachBaseContext(base);
}
然后下一步是在 build.gradle
处将 multidex 支持添加到 defaultConfig
defaultConfig {
...
minSdkVersion 16
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
...
见 http://phpidiots.in/android/unexpected-top-level-exception/
我的 Gradle 文件中有以下依赖项:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "packagename"
minSdkVersion 10
targetSdkVersion 23
}
sourceSets {
main {
jni.srcDirs = []
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:23.0.1'
compile files('libs/FLurry_3.2.2.jar')
compile files('libs/pixel-perfect-collision.jar')
compile files('libs/twitter4j-core-3.0.3.jar')
compile project(':zip_file')
compile project(':andEngine')
compile project(':andEnginePhysicsBox2DExtension')
compile project(':downloader_library')
compile project(':viewPagerLibrary')
compile 'com.google.android.gms:play-services:8.1.0'
compile 'org.apache.commons:commons-lang3:3.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:23.0.1'
}
在构建 gradle 文件时出现以下错误:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
为了解决这个错误,我已经添加了 multidex 依赖项:
compile 'com.android.support:multidex:1.0.1'
还在循环..
已编辑:问题已经解决,所以不要尝试复制它,解决方案如下..!!
希望得到帮助!
谢谢。
你应该添加
multiDexEnabled true
在build.gradle
defaultConfig {
applicationId 'pkg'
minSdkVersion
targetSdkVersion
versionCode
versionName
// Enable MultiDexing: https://developer.android.com/tools/building/multidex.html
multiDexEnabled true
}
这意味着您的应用超过了 android 应用的 65k 方法计数限制。 看来您正在使用 google 庞大的播放服务。
compile 'com.google.android.gms:play-services:8.1.0'
您可以通过仅使用上面相同 link 中显示的您需要的播放服务来减少这种情况。 例如,如果您的应用只需要 gcm,您可以使用它的子集,例如:
com.google.android.gms:play-services-gcm:8.1.0
等等
当您的整个项目有超过 64000
个方法时,就会出现此问题。
所以你必须添加对应用程序 build.gradle
文件
compile 'com.android.support:multidex:1.0.0'
然后将此标签添加到AndrodManifest.xml
到应用程序项
<application
...
android:name="android.support.multidex.MultiDexApplication">
如果您的应用使用扩展应用程序 class 添加此代码
@Override
public void attachBaseContext(Context base) {
MultiDex.install(base);
super.attachBaseContext(base);
}
然后下一步是在 build.gradle
defaultConfig {
...
minSdkVersion 16
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
... 见 http://phpidiots.in/android/unexpected-top-level-exception/