Android Studio DexIndexOverflowException:方法ID不在

我使用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 

尝试在build.gradle中启用multiDex:

 android { defaultConfig { ... // Enabling multidex support. multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.0' } 

本文可能会有所帮助: 更新到最新的appcompat和支持库后发生的DexIndexOverflowException问题

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文件中描述它们

在你的gradle中设置multiDex

 defaultConfig { // ... multiDexEnabled true } 

这对我有用。

DexIndexOverflowException也是由超过65536个方法引起的。 添加Google Play服务等大型图书馆时,很容易发生这种情况。 看到这个答案的解决scheme。

最好的方式使用个人包在所有的谷歌服务包列表下。

在build.gradle中的 Google Play服务API 描述
Google+ com.google.android.gms:play-services-plus:11.2.0
Google帐户login com.google.android.gms:play-services-auth:11.2.0
Google Actions,Base Client Library com.google.android.gms:play-services-base:11.2.0
Google Address 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云消息传递 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
Mobile Vision com.google.android.gms:play-services-vision:11.2.0
Google附近的 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个月,我发现这个错误在我自己创build的项目中,我失去了超过14个项目的这个东西。 我期待的所有地方的stackoverflow和其他也是android.developer.multidex extr …..的网站官员,但谷歌机器人的任何方法官方解决了我的问题。

最后,我正在尝试与广告的谷歌播放服务的简单变化。 这是我发现的最终解决scheme:

  • 首先编译女巫我发现错误是:编译'com.google.android.gms:play-services:9.0.2'

  • 改变只是添加“-maps”,并确保您的广告完美的工作! 编译“com.google.android.gms:play-services-maps:9.0.2”

版本9.0.2可以让你的minSdkVersion 11工作,因为你知道广告只能使用版本11和高!

我很自豪地find解决scheme,并分享这个简单的解决scheme来解决他人的问题。

  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' }