Android “64k”的问题以及解决方案 Error:The number of method references in a .dex file cannot exceed 64K.

2023-11-07

概述:本片文章转自 果冻豆人的博客。

一  错误的提示:

      Error:The number of method references in a .dex file cannot exceed 64K.
      Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html


二  出现Error的原因:

      1 我们来看表面的翻译  错误:在一个方法的引用数。DEX文件不能超过64K。

      2 详细解释:在Android系统中,一个App的所有代码都在一个Dex文件里面。Dex是一个类似Jar的存储了多有Java编译字节码的归档文件。因为Android系统使用Dalvik虚拟   机,所以需要把使用Java Compiler编译之后的class文件转换成Dalvik能够执行的class文件。这里需要强调的是,Dex和Jar一样是一个归档文件,里面仍然是Java代码对应的字节码文件。当Android系统启动一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很多。 但是在早期的Android系统中,DexOpt的LinearAlloc存在着限制: Android 2.2和2.3的缓冲区只有5MB,Android 4.x提高到了8MB或16MB。当方法数量过多导致超出缓冲区大小时,会造成dexopt崩溃,导致无法安装.

另外由于DEX文件格式限制,一个DEX文件中method个数采用使用原生类型short来索引文件中的方法,也就是4个字节共计最多表达65536个method,field/class的个数也均有此限制。对于DEX文件,则是将工程所需全部class文件合并且压缩到一个DEX文件期间,也就是Android打包的DEX过程中, 单个DEX文件可被引用的方法总数被限制为65536(自己开发以及所引用的Android Framework和第三方类库的代码).


三 解决方案

compile 'com.android.support:multidex:1.+'

2 修改 Application extends MultiDexApplication

3  最后在build.gradle defaultConfig中加入:

defaultConfig {
	multiDexEnabled true
}
根据本人亲自测试  只需第三步即可 如果不行的话 就三步都做吧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android “64k”的问题以及解决方案 Error:The number of method references in a .dex file cannot exceed 64K. 的相关文章

  • 飞书文档导出pdf不带书签/大纲 问题

    问题 我在飞书上整理了很多笔记 有天想把它导出本地 主要原因是有时候网络不好时 网页版的飞书加载比较慢 此外 我还想将其打印成纸质版来看 比较有感觉 飞书我是可以看到各个大纲级别的标题的 一级大纲 二级大纲这样整理非常方便 但是当我导出为p
  • 交叉编译tslib (正确版)

    1 下载安装交叉编译器 编译器版本不限 需要与系统移植时的编译器保持一致即可 2 下载tslib1 4 3 交叉编译tslib 1 4 下载的tslib 1 4 tar gz放到 home driver ts 目录下 cd home dri
  • 手写算法-Python代码实现非线性回归

    手写算法 Python代码实现非线性回归 生成非线性数据集 1 用线性回归拟合 2 多项式拟合 sklearn实现 校验系数的结果 总结 生成非线性数据集 前面我们介绍了Python代码实现线性回归 今天 我们来聊一聊当数据呈现非线性时 这
  • 嵌入式监控【v4l2采集->vpu编码->live555推流】

    嵌入式监控 v4l2采集 gt vpu编码 gt live555推流 文章目录 嵌入式监控 v4l2采集 gt vpu编码 gt live555推流 介绍 数据流图 一 v4l2 1 1 确定cam的输出格式 1 2 YUYV 转 YUV4
  • 【机器学习系列】如何将多条ROC曲线画在一张图里,并解决文本遮挡问题

    有的时候我们需要将ROC曲线输出在同一张图中 这样可以更加直观地对比模型 并且我们常常会遇到在图形中有文字相互遮挡的问题 我们可以用adjustText中的adjust text来实现文本不相互遮挡并添加箭头的功能 定义多条roc曲线画图函
  • 股票交易系统的服务器,股标交易传输系统

    本词条缺少概述图 补充相关内容使词条更完整 还能快速升级 赶紧来编辑吧 股标交易传输系统在Windows 环境下将原有的传输和显示系统进行改进 使它们在 Windows 环境下可以并发执行 而且可以和其它应用 程序协调地共享资源 这不仅实现
  • 基于labview实现MYSQL数据库查询功能

    前言 labview是一款功能强大的图形化编程软件 也就是俗称的G语言 本篇将介绍如何利用labview对MYSQL进行列表分页 范围查询及模糊查询等几个可广泛应用的简易功能 但事实上labview并不擅长处理数据库 下面详细代码可体现 数
  • spring-boot,java 微服务,跨域配置

    只需要在启动类下面与run方法同级加上下面那串代码即可 public static void main String args SpringApplication run ApplicationService class args Over
  • Visual Studio 2019中使用Qt,步骤详解

    本文学习的目的就是在Visual Studio 2019环境下能够顺利的运行Qt程序 下面是一些具体的配置安装过程 首先 打开visual Studio 2019 继续但无需代码 如图 然后点击扩展 管理扩展 在搜索框中搜索Qt 点击下载插
  • 上个厕所的功夫,就把定时任务的三种调度策略说得明明白白

    Spring Task 无疑是 Spring 环境下单机定时任务的首选 它用起来非常简单 功能也够用 Spring Task 有三种模式 分别是 fixedDelay cron 和 fixedRate 话不多说 我们先看代码 Slf4j C
  • JUC多线程及高并发

    文章目录 1 对volatile的理解 2 CAS 3 原子类AtomicInteger的ABA问题 原子更新引用 4 ArrayList线程不安全的案例 5 公平锁 非公平锁 可重入锁 递归锁 自旋锁 6 CountDownLatch C
  • SpringBoot支付宝沙箱支付步骤

    步骤1 注册一个沙箱号 网站https open alipay com platform home htm 使用自己真实的支付宝扫描进去 进行注册沙箱支付宝 步骤2 下载密匙生成工具 下载完毕 解压 双击运行 网址 https opendo
  • 重磅:国产IDE发布,由阿里研发,完全开源!​(高性能+高定制性)

    经历近 3 年时间 在阿里集团及蚂蚁集团共建小组的努力下 OpenSumi 作为国内首个强定制性 高性能 兼容 VS Code 插件体系的 IDE 研发框架 今天正式对外开源 1 OpenSumi 是什么 OpenSumi 是一款面向垂直领
  • Lua点号和冒号区别

    定义的时候冒号默认接收self参数 调用的时候冒号默认传递调用者自己为参数 而句号要显示传递或接收self参数 例如 句号定义 需要显示传递或接收 plain view plain copy a x 1 function a fun sel
  • Python画QQ图检验正态分布

    import numpy as np import seaborn as sns import matplotlib pyplot as plt from statsmodels graphics api import qqplot sns
  • pip 安装 sklearn or scikit-learn python3

    安装 sklearn 1 安装 numpy scipy matplot pip3 install numpy scipy matplotlib i https pypi tuna tsinghua edu cn simple 2 安装 sk
  • Android序列化:Serializable Parcelable

    Android序列化完全解析 一 Java Serializable http http www jianshu com p fcc59fb523b6 Android序列化完全解析 二 Parcelable http www jianshu
  • 背对背mos管开关_10天电子入门-MOS管

    1 MOS管介绍 在各大IT企中我们把场效应管 FET 统称为MOS管 其作用是把输入电压的变化转化为输出电流的变化 FET的增益等于它的跨导 定义为输出电流的变化和输入电压变化之比 市面上常有的一般为N沟道和P沟道 它属于电压控制型半导体
  • uni-app 之 解决u-button始终居中问题

    uView中u button始终居中问题如何解决的简单方法 1 给该元素margin right 0 可以达到向右靠齐 2 给该元素的父元素设置float right image png

随机推荐