我使用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
在gradle中设置multiDex
defaultConfig {
// ...
multiDexEnabled true
}
对我来说是工作。
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文件中描述它们
尝试在 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。