com.android.dex.DexIndexOverflowException

解决VMWare ESXi PCIe直通显卡导致的DevicePowerOn启动故障 本文详细解析了VMWare ESXi中PCIe直通显卡导致的DevicePowerOn启动故障,重点分析了MMIO空间不足的根本原因,并提供了完整的解决方案。通过修改.vmx文件中的关键参数,如pciPassthru.64bitMMIOSizeGB,可以有效解决显存分配问题。文章还涵盖了硬件兼容性检查、性能调优技巧及大规模部署的实战案例,帮助用户彻底解决显卡直通难题。 阅读详情

https://blog.youkuaiyun.com/bright789/article/details/51043825

https://www.cnblogs.com/Sharley/p/7248749.html

当我们在一个项目写的代码越来越多时,在编译项目时就可能出现如下错误(工具不同,版本不同,提示可能有差异):

UNEXPECTEDTOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException:method ID not in [0, 0xffff]: 65536
         atcom.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:484)
         atcom.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:261)
         atcom.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:473)
         atcom.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:161)
         atcom.android.dx.merge.DexMerger.merge(DexMerger.java:188)
         atcom.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504)
         atcom.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
         atcom.android.dx.command.dexer.Main.run(Main.java:277)
         atcom.android.dx.command.dexer.Main.main(Main.java:245)
         atcom.android.dx.command.Main.main(Main.java:106)
FAILED
FAILURE:Build failed with an exception.
* Whatwent wrong:
Executionfailed for task ':app:compileDebugJavaWithJavac'.
>Compilation failed; see the compiler error output for details.
* Try:
Run with--stacktrace option to get the stack trace. Run with --info or --debug optionto get more log output

或

Conversionto Dalvik format failed:
Unableto execute dex: method ID not in [0, 0xffff]: 65536

或者

troublewriting output:

Too manyfield references: 131000; max is 65536.

You maytry using --multi-dex option.


等等这样的错误时,就表明咱们项目中的打包进来的方法过多,超过了最大限制值65536个(这个值在本类错误中每次都出现),这里说的方法包括咱们用到的Android 框架方法,引用的库里的方法以及咱们自己写的方法三类。
 

那么遇到这个问题怎么办法呢?我通过查资源和实践,总结出了三种办法:

1.      咱们自己去看看我们项目中的代码,把没有用到的代码和引用库都去掉,以减少编译时的包含的方法数,这样就不容易达到峰值65536

2.      在编译release版本时加上压缩优化的代码如下:

android {
   ...
    buildTypes {
        release {
            minifyEnabled true
            proguardFilesgetDefaultProguardFile('proguard-android.txt'),
            'proguard-rules.pro'
        }
    }
  }

3.如果做完前两种还是会出现这种问题,那么使用分包的编译方式。

分包的编译方式我也写两个点:

第一个是它的步骤:

第二个是他的缺点及注意事项:

 

分包编译方式的步骤:

1.      在咱们主模块的build.gradle文件的dependencies标签下加入如下代码并编译:

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


2.      在咱们主模块的build.gradle文件的android标签下的defaultConfig标签下加入multiDexEnabled 项,代码如下:

android {
    compileSdkVersion 21
    buildToolsVersion"21.1.0"
    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...
        multiDexEnabled true
    }
    ...
}


3.      引用MultiDexApplication类,而不Application。

这里边也有三种情况:

1.      咱们没有自定义的Application,所以就在manifest文件中直接加入如下代码:

<?xml version="1.0" encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>


2.      咱们有自己的Application,但是直接继承自Application,那么把Application换成MultiDexApplication即可,样子如下:

    MyApplication extends MultiDexApplication {
.......
}


3.      咱们有自己的Application,但不想换成方法2的办法,那么就在自己Application覆写一个方法如下:

protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}


好的,已经讲完了分包编译的步骤,其中我出现了几个问题,一并贴出:

问题1:

* Whatwent wrong:

Aproblem occurred configuring project ':app'.

>Could not resolve all dependencies for configuration ':app:_debugCompile'.

   > Could not findcom.android.support:multidex:.

     Searched in the following locations:

        https://jcenter.bintray.com/com/android/support/multidex//multidex-.pom

        https://jcenter.bintray.com/com/android/support/multidex//multidex-.jar

         file:/D:/android/sdk/extras/android/m2repository/com/android/support/multidex//multidex-.pom

         file:/D:/android/sdk/extras/android/m2repository/com/android/support/multidex//multidex-.jar

         file:/D:/android/sdk/extras/google/m2repository/com/android/support/multidex//multidex-.pom

         file:/D:/android/sdk/extras/google/m2repository/com/android/support/multidex//multidex-.jar

     Required by:

         TextMultiDexDemo:app:unspecified

 

* Try:

Run with--stacktrace option to get the stack trace. Run with --info or --debug optionto get more log output.

 

这个主要是我自己没有下载那个包com.android.support:multidex导致的,因为我把步骤1放在了最后,所以出现了这个问题,解决办法就是先添加步骤1并编译成功后,再加步骤2和步骤3

问题2:

Error:Executionfailed for task ':app:dexDebug'. ... Error Code: 3 Output:

UNEXPECTEDTOP-LEVEL ERROR:

java.lang.OutOfMemoryError:GC overhead limit exceeded at com.android.dx.cf.cst.ConstantPoolParser.parse0(ConstantPoolParser.java:326)...

这个是由于我们在编译分包时占用的内存过大,导致出现OOM错误

4.      解决办法:在咱们主模块的build.gradle文件的android标签下的dexOptions标签下加入javaMaxHeapSize "4g"

如下代码:

android {
……
dexOptions {
        javaMaxHeapSize"4g"
    }
…..
}


分包编译的缺点及注意事项:

1.      分包编译出来的包安装到手机上可能会出现无响应的错误,如果分包中的第二包比较大的话,解决办法还是优化自己的代码,减小包的大小

2.       采用分包编译出来的包可适合于 Android4.0 (API level 14) 及以上的版本,如果要支持Android 4.0的版本,可能多测试,因为由于分包后对内存的要求也更大更多,而我们的系统尤其是Android 5.0 (API level 21)之前的版本,为了维护稳定的环境,分配好有限的内存资源,对每个跑起来软件的内存请求限制 ,很有可能会出大问题,甚至出现OOM

3.      如果是编译调试版本,可以使用在build.gradle文件中minSdkVersion 21,这样更快

如果是正式版本,可以使用在build.gradle文件中minSdkVersion14,这样更慢,但支持的用户机型更多
 

 

 

【YOLOv12[基础]】热力图可视化实践 | 脚本升级 | 优化可视化效果 | 论文必备 | GradCAMPlusPlus, GradCAM, XGradCAM, EigenCAM等 热力图可视化实践 | 脚本升级 | 优化可视化效果 | 论文必备 GradCAMPlusPlus, GradCAM, XGradCAM, EigenCAM等 阅读详情

相关推荐

程序员的自我修养

一个好的程序员的自我修养需要从不同角度出发,工作能力是一个方面,对自身的定位和了解也是一个方面,程序员的工作能力修养包括需求理解、功能设计、沟通确认、代码规范、成果验证、代码重构优化等,通过自我剖析来对自身进行定位并了解自身的优缺点,如去除劣根性、端正意识形态与态度、提升自己的核心竞争力等。 自我剖析 一个成功的人,必须要先了解自己,只有了解自己是什么样的人,了解自身有哪些优缺点,了解自己更合适做什么工作,知道自己做什么才能发挥出自身的优势,这样才能使自己在工作中发光发热,在职业生涯的道路上走的更远。

数通畅联 1676

Android中加入依赖库点击运行后报错:com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

1,报错全部信息如下:Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concu

No errors,no gains! 1365

BMS菊花链芯片怎么选?一张表对比ADI、TI、NXP五大厂家的隔离通信方案

本文深入对比了ADI、TI、NXP等五大厂商的BMS菊花链芯片隔离通信方案,涵盖技术演进、核心参数和场景化选型策略。通过实测数据和开发经验分享,帮助工程师在新能源汽车和储能系统中选择最优方案,提升通信可靠性和成本效益。

weixin_33724046的博客 433

解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题

错误: Error:Executionfailed for task ':app:transformClassesWithDexForDebug'. >com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.Ex

jiahuan0207的博客 1810

Kindle电子书DRM破解全攻略:从下载到转换的完整流程(含最新DeDRM插件配置)

本文详细介绍了如何合法移除个人购买的Kindle电子书的DRM保护,实现跨设备阅读与备份。核心内容包括使用最新DeDRM插件(如noDRM分支)配合Calibre进行配置,并针对亚马逊最新的KFX加密格式提供了密钥提取与实战操作指南。文章强调该方法仅适用于个人合理使用,旨在帮助读者真正掌控自己的数字资产。

delta的博客 576

JetLinks社区版VS企业版:手把手教你用PostgreSQL+Redis搭建物联网中台(Win7实测)

本文详细对比了JetLinks社区版与企业版的核心差异,并提供了在Windows 7系统上,使用PostgreSQL和Redis搭建物联网中台的完整部署教程。文章深入解析了从环境准备、后端服务构建到前端部署的每一步,为开发者在资源有限环境下构建高性价比物联网平台提供了清晰的实战指南。

w1x2y3的博客 307

当android编译出现com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536错误时的处理

当我们在一个项目写的代码越来越多时,在编译项目时就可能出现如下错误(工具不同,版本不同,提示可能有差异): UNEXPECTEDTOP-LEVEL EXCEPTION: com.android.dex.DexIndexOverflowException:method ID not in [0, 0xffff]: 65536 atcom.android.dx.merge.Dex

bright789的博客 1万+

汽车电子开发必看:AUTOSAR MCAL层SPI驱动配置全解析(基于EB tresos)

本文深入解析了AUTOSAR MCAL层SPI驱动的核心配置,基于EB tresos工具详细阐述了通道、外部设备、作业与序列等关键概念。重点剖析了多设备共享总线时的资源管理与实时性调优策略,特别是SpiJobPriority参数的决定性影响,并提供了常见配置陷阱的实战排查指南,旨在帮助汽车电子工程师高效完成SPI驱动配置。

weixin_29188043的博客 293

“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题解决

在工程中引入了多个第三方jar包,导致调用的方法数超过了android设定的65536个(DEX 64K problem),进而导致dex无法生成,也就无法生成APK文件。 解决办法如下: 1、在项目的build.gradle文件的dependencies 节中添加分包设置: dependencies { ... compile 'com.android.support:m

小祝的专栏 802

996引擎 - 【任务系统】和【cfg_newtask.xls】

996这个任务系统仅用于控制主界面左上角的【任务列表】,不包含具体任务的业务逻辑。任务列表有多个任务时支持上下滑动,可以调用接口将指定任务【置顶】任务列表中,每个任务一行,分标题和(当前状态对应的)内容两部分,点击能触发事件具体的任务系统业务逻辑,需要自己写代码实现。(配合996提供的任务接口和触发,实现更新任务列表)

灵台方寸山斜月三星洞 1441

华为OD机试真题:明日之星选举 (Java/Py/C/ C++/JS/GO)

华为OD机试(机考)双机位C卷 【明日之星选举】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 明日之星选举。

qq_45776114的博客 919

解决com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

前言AS编译的时候报以下错误Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.co

尼诺和尼可 7667

MTK AWB 色温曲线的进一步猜想

平均距离来判断是否对该色温下白平衡进行全部收白处理,还是保留一些光源的本身的颜色。比如占据图像一大半左右的纯色背景,纵坐标值相对横坐标的距离应该会比较大,大于一般场景下的正常白点分布。反之,位于Plank_curve下方位置的点具有偏洋红色的倾向。此时拟合各个色温下的白点,拟合曲线大致是以X= 0.85)平行于横轴的一条直线。对原始坐标系中的点取对数后的Log坐标系空间。此时拟合各个色温下的白点,拟合曲线大致呈现的是一条直线。,可以认为是各种色温下白点分布所呈现的走向。的算法利用某个色温点的偏离。

大熊 722

关于com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536的解决方法

标题:关于com.android.dex.DexIndexOverflowException: method ID not in [0,                    0xffff]: 65536的解决方法  1、为什么会出现次问题?        (1)、如果大家的项目中使用了Butterknife-7.0.1.jar ,像我这种英语很差的人,在不同的布局文件中,会使用相同的id,所

东子的博客 细节决定成败,点滴铸就辉煌。 3366

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Android编译出现com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536错误解决办法

**Android编译出现com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536错误解决办法**今天在编译项目时出现了这个错误,在我用真机进行运行的时候没有这个错误,程序也可以跑起来,当我用模拟器,运存1G的运行时,突然就出现了这个错误,搞得我一脸懵逼。然后也查阅了相关博客和网站。终于将这个问题解决

cc244072735的博客 2984

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android Studio 错误 com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

http://blog.csdn.net/janronehoo/article/details/48053203 Android Studio 错误 com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 2015-08-28 15:38 1271人阅读 评论(0) 收

u011904605的博客 452

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android Studio:64K问题com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

问题AS安装报错:com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502) at com.android.dx.merge.DexMe

switch(mind) 588

解决ERROR:ANDROID DEX: COM.ANDROID.DEX.DEXINDEXOVERFLOWEXCEPTION: CANNOT MERGE NEW INDEX 66220 INTO A

错误Error:Android Dex: com.android.dex.DexIndexOverflowException: Cannot merge new index 66220 into a non-jumbo instruction! 分析:上面的异常是什么意思呢? Dex文件的方法数超出上限,那么上限(64k=65535) 解决: 1.Eclipse直接在pro

qq_19729823的博客 485

Android studio打包的时候出现com.android.dex.DexIndexOverflowException

有的朋友在打包的时候可能遇到过com.android.dex.DexIndexOverflowException:Cannot merge new index 68491 into a non-jumbo instruction!这种问题

freeskyniu的博客 470

关于com.android.dex.DexIndexOverflowException: method ID not in [0, 0...

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/50214409 标题:关于com...

weixin_34144450的博客 105

解决Error:Android Dex: com.android.dex.DexIndexOverflowException: Cannot merge new index 65918 into a

错误:Error:Android Dex: com.android.dex.DexIndexOverflowException: Cannot merge new index 65918 into a non-jumbo instruction! 如下图: 直接原因是Java代码太多,jar包太多。 eclipse的解决方案:在项目中的这个文件project.properties中添

Alex老夫子的专栏 5704

Android学习笔记----解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题

Android学习笔记----解决“com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536”问题

w36680130的博客 159

android 架包依赖过多问题:com.android.dex.DexIndexOverflowException

有可能的的项目写的好好的,有一天突然想Build一下apk到其他手机上测试一下,但是直接build失败,出现下面的原因: Error:Execution failed for task ':App:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android

csclmf的博客 596

com.android.dex.DexIndexOverflowException: Cannot merge new index 66078 into a non-jumbo instruction

报错提示:   Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concu

PING的博客 749
上一篇: 第三方沉浸式状态栏
下一篇: RxJava系列教程
code_dream_wq
博客等级 码龄10年 51粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值