我使用Android Studio开发应用程序,我遇到了这个错误,我不知道如何解决。
com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]
中
:app:lintVitalRelease
:app:prePackageMarkerForRelease
:app:transformClassesWithDexForRelease FAILED
Error:Execution failed for task ':app:transformClassesWithDexForRelease'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Information:BUILD FAILED
Information:Total time: 34.783 secs
Information:1 error
答案 0 :(得分:121)
尝试在build.gradle中启用multiDex:
android {
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
本文可能有用:DexIndexOverflowException issue after updating to latest appcompat and support library
答案 1 :(得分:27)
Android的方法上限为65536。
如果您添加了整体播放服务,请将其删除并添加特定的服务。
删除compile 'com.google.android.gms:play-services:9.6.1'
然后为地图添加ex:compile 'com.google.android.gms:play-services-maps:9.6.1'
。
https://developers.google.com/android/guides/setup
显示了编译应用时可以包含的单独API的列表,以及如何在build.gradle文件中描述它们
答案 2 :(得分:22)
在你的gradle中设置multiDex
defaultConfig {
// ...
multiDexEnabled true
}
这对我有用。
答案 3 :(得分:7)
最佳方式是在所有Google服务包列表下使用个别包。
Google Play服务API build.gradle中的说明
Google+ com.google.android.gms:play-services-plus:11.2.0
Google帐户登录 com.google.android.gms:play-services-auth:11.2.0
Google操作,基本客户端库 com.google.android.gms:play-services-base:11.2.0
Google地址 API com.google.android.gms:play-services-identity:11.2.0
Google Analytics com.google.android.gms:play-services-analytics:11.2.0
Google Awareness com.google.android.gms:play-services-awareness:11.2.0
Google Cast com.google.android.gms:play-services-cast:11.2.0
Google Cloud Messaging com.google.android.gms:play-services-gcm:11.2.0
Google云端硬盘 com.google.android.gms:play-services-drive:11.2.0
Google Fit com.google.android.gms:play-services-fitness:11.2.0
Google位置和活动识别 com.google.android.gms:play-services-location:11.2.0
Google地图 com.google.android.gms:play-services-maps:11.2.0
Google移动广告 com.google.android.gms:play-services-ads:11.2.0
Google商家信息 com.google.android.gms:play-services-places:11.2.0
移动视觉 com.google.android.gms:play-services-vision:11.2.0
Google Nearby com.google.android.gms:play-services-nearby:11.2.0
Google Panorama Viewer com.google.android.gms:play-services-panorama:11.2.0
Google Play游戏服务 com.google.android.gms:play-services-games:11.2.0
SafetyNet com.google.android.gms:play-services-safetynet:11.2.0
Android Pay com.google.android.gms:play-services-wallet:11.2.0
Android Wear com.google.android.gms:play-services-wearable:11.2.0
答案 4 :(得分:5)
DexIndexOverflowException
也是由超过65536种方法引起的。添加Google Play服务等大型图书馆时,很容易发生这种情况。有关解决方案,请参阅this answer。
答案 5 :(得分:5)
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
solution : inside build.gradle(app)
defaultConfig {
applicationId "com.rentalhousereviews"
------------
-----------
multiDexEnabled true //add this line
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
答案 6 :(得分:2)
超过4个月我在我自己创建的项目中发现了这个错误,我用这个东西丢失了超过14个项目。 我正在寻找stackoverflow和其他地方的所有地方以及android.developer.multidex extr的网站官方.....但谷歌android的任何官方官方解决了我的问题。
最后,我尝试简单更改广告的Google Play服务。 这是我发现的最终解决方案:
首先编译女巫我发现错误是: 编译com.google.android.gms:播放服务:9.0.2'
更改只是添加" -maps"并确保您的广告完美无缺! 编译com.google.android.gms:play-services-maps:9.0.2'
版本9.0.2可以让你的minSdkVersion 11工作,因为你知道广告只能用于版本11和高度!
我很自豪能找到解决方案并分享这个简单的解决方案来解决其他人的问题。
答案 7 :(得分:0)
任务':app:transformDexArchiveWithDexMergerForDebug'的执行失败。
com.android.build.api.transform.TransformException:com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]中:65536
最新版本com.android.support:multidex:1.0.3
对我有用!
dependencies {
compile 'com.android.support:multidex:1.0.3'
}