当前位置: 首页 > 知识库问答 >
问题:

Android Studio DexIndexOverflowException:方法id不在

王辉
2023-03-14

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

共有3个答案

祁兴运
2023-03-14

在gradle中设置multiDex

defaultConfig {
    // ...
    multiDexEnabled true
}

对我来说是工作。

樊俊悟
2023-03-14

Android预定义了65536个方法的上限。

如果您添加了完整的播放服务,请将其删除并添加特定的服务。

删除compile'com.google.android.gms: play-service: 9.6.1',然后添加ex:compile'com.google.android.gms: play-services-map: 9.6.1'用于映射。

https://developers.google.com/android/guides/setup

显示了编译应用程序时可以包含的独立API的列表,以及如何在build.gradle文件中描述它们

东深
2023-03-14

尝试在 build.gradle 中启用多Dex:

android {

    defaultConfig {
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

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

 类似资料:
  • 问题内容: 我以前见过各种版本的dex=erros,但这是新的。清理/重新启动等无济于事。图书馆项目似乎完好无缺,并且依存关系似乎已正确链接。 要么 要么 tl; dr:来自Google的官方解决方案终于来了! 只有一个小技巧,您可能需要执行此操作,以防止在进行排序时内存不足。 还有一种巨型模式可以用不太可靠的方式解决此问题: 问题答案: 更新3(11/3/2014)Google终于发布了官方说明

  • 我以前见过各种版本的德克斯错误,但这一个是新的。清理/重新启动等不会有帮助。库项目似乎完好无损,依赖项似乎正确链接。 或 或 还有一种jumbo模式可以用一种不太可靠的方式来解决这个问题: 更新:如果您的应用程序太胖,并且您的主应用程序中有太多的方法,您可能需要按照 http://blog.osom.info/2014/12/too-many-methods-in-main-dex.html

  • 我想跨调用缓存方法ID。为此,我得到方法ID: 我的问题是:我是否需要使用NewGlobalRef创建全局引用,或者可以从本地引用获取并保存方法ID(我使用FindClass获取class\u HelloWorld),而不需要全局引用类元数据?

  • 我知道这个问题已经被问了很多次,但我有一些奇怪的问题,它在ADT v22中运行良好,但当我更新我的eclipse到v23时,我得到了这个错误 无法执行dex:method ID不在[0,0xffff]:65536中转换为Dalvik格式失败:无法执行dex:method ID不在[0,0xffff]:65536中 谢谢你的帮助 更新:问题得到了修复,当我使用Android Studio与Multi

  • 引用脚本的内容: name 'Find Control IDs' outfile 'findctlID_MUI.exe' showinstdetails show InstallDir '$EXEDIR' var header !include mui.nsh ; 许可协议页面 !define MUI_PAGE_CUSTOMFUNCTION_PRE lic_pre !define MUI_P

  • 问题内容: 我有一类关于物体的东西……拉特说苹果。 每个苹果对象都必须具有唯一的标识符(id)…如何(高效且有效率地)确保新创建的对象具有唯一的ID。 谢谢 问题答案: 在Apple类中有一个,并在构造函数中增加它。 确保您的递增代码是原子的可能是谨慎的做法,因此您可以执行以下操作(使用AtomicInteger)。这将确保如果两个对象完全同时创建,则它们不会共享相同的ID。