我的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'
仍在循环......
编辑:已经解决了问题,所以不要尝试复制它,解决方案在下面.. !!
希望得到帮助。!
感谢。
答案 0 :(得分:4)
你应该添加
multiDexEnabled true
build.gradle
中的
defaultConfig {
applicationId 'pkg'
minSdkVersion
targetSdkVersion
versionCode
versionName
// Enable MultiDexing: https://developer.android.com/tools/building/multidex.html
multiDexEnabled true
}
答案 1 :(得分:3)
这意味着您的应用超过Android应用程序的65k方法计数限制。 看来你正在使用庞大的谷歌播放服务。
compile 'com.google.android.gms:play-services:8.1.0'
正如this document所说
您可以仅使用上面相同链接中显示的播放服务来减少此问题。 例如,如果您的应用只需要gcm,您可以使用其子集,如:
com.google.android.gms:play-services-gcm:8.1.0
等
答案 2 :(得分:1)
当您的整个项目有更多64000
方法时,会出现此问题。
所以你必须向应用程序build.gradle
文件
compile 'com.android.support:multidex:1.0.0'
然后将此标记添加到AndrodManifest.xml
到应用程序项
<application
...
android:name="android.support.multidex.MultiDexApplication">
如果您的应用使用扩展,则应用类添加此代码
@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/