异常:

trouble writing output:
Too many field references: 131000; max is 65536.
You may try using --multi-dex option.//或者:Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536

原因:

65536。此数字是单个 Dalvik Executable (DEX) 字节码文件内的代码可调用的引用总数。Android 应用 (APK) 文件包含 Dalvik Executable (DEX) 文件形式的可执行字节码文件,
这些文件包含用来运行您的应用的已编译代码。
Dalvik Executable 规范将可在单个 DEX 文件内引用的方法总数限制为 65536,
其中包括 Android 框架方法、库方法以及您自己的代码中的方法。

解决:

一、Android 5.0 之前版本的多 dex 文件支持

1.每个 APK 只能使用一个 classes.dex 字节码文件。要绕过这一限制,可以在项目中添加多 dex 文件支持库:

    dependencies {def multidex_version = "2.0.1"implementation 'androidx.multidex:multidex:$multidex_version'}

2.如果不使用 AndroidX,改为添加以下支持库依赖项:

    dependencies {//此库会成为应用的主要 DEX 文件的一部分,然后管理对其他 DEX 文件及其所包含代码的访问。implementation 'com.android.support:multidex:1.0.3'}
二、Android 5.0 及更高版本的多 dex 文件支持

1.minSdkVersion 设为 21 或更高的值,默认情况下,系统会启用多 dex 文件,并且不需要多 dex 文件支持库。

2.minSdkVersion 设为 20 或更低的值,则必须使用多 dex 文件支持库并对应用项目进行修改。

3.解决之道:

① 修改模块级 build.gradle 文件以启用多 dex 文件:

    android {defaultConfig {...minSdkVersion 15targetSdkVersion 28//这个别忘了,放在主Moudle配置文件中比较靠谱multiDexEnabled true}...}dependencies {implementation 'com.android.support:multidex:1.0.3'}

② Application 类:

注:1和2只配置一种即可

    //1.可以将android:name设置为:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapp"><applicationandroid:name="android.support.multidex.MultiDexApplication" >...</application></manifest>//2.或者自己的Application继承MultiDexApplication://java这样public class MyApplication extends MultiDexApplication {@Overridepublic void onCreate() {super.onCreate();MultiDex.install(this);}}//kotlin 这样玩:class MyApplication : SomeOtherApplication() {override fun attachBaseContext(base: Context) {super.attachBaseContext(base)MultiDex.install(this)}}
注意事项:
注意:在 MultiDex.install() 完成之前,
不要通过反射或 JNI 执行 MultiDex.install() 或其他任何代码。多 dex 文件跟踪功能不会追踪这些调用,
从而导致出现 ClassNotFoundException,或因 DEX 文件之间的类分区错误而导致验证错误。

还有问题的话,可以在评论区留言哦~

Android 65536 详解!相关推荐

  1. android rotate 动画,Android RotateAnimation详解

    RotateAnimation旋转坐标系为以旋转点为坐标系(0,0)点.x轴为0度,顺时针方向旋转一定的角度. 1.RotateAnimation(fromDegrees, toDegrees) [默 ...

  2. Android Linker详解

    Android Linker详解 本文目的 Linker入口 So的装载 总结 本文目的 Unidbg在对So进行模拟执行的时候,需要先将So文件加载到内存,配置So的进程映像,然后使用CPU模拟器( ...

  3. 【转】Android菜单详解——理解android中的Menu--不错

    原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...

  4. Android菜单详解——理解android中的Menu

    前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...

  5. Android LayoutInflater详解

    Android LayoutInflater详解 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类 似于findViewById().不同点是LayoutInflater是用来 ...

  6. android Fragments详解

    android Fragments详解一:概述 android Fragments详解二:创建Fragment 转载于:https://my.oschina.net/liangzhenghui/blo ...

  7. android WebView详解,常见漏洞详解和安全源码(下)

    上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑.  上篇:android WebView详解,常见漏洞详解和安全源码(上)  转载请注明出处:http ...

  8. android WebView详解,常见漏洞详解和安全源码(上)

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  由于博客内容长度,这次将分为上下两篇,上篇详解 WebView ...

  9. android子视图无菜单,Android 菜单详解

    Android中菜单分为三种,选项菜单(OptionMenu),上下文菜单(ContextMenu),子菜单(SubMenu) 选项菜单 可以通过两种办法增加选项菜单,一是在menu.xml中添加,该 ...

最新文章

  1. HTMD | 从PDB文件获取3D特征描述符
  2. hadoop3.0 分布式搭建/安装
  3. Codeforce 1255 Round #601 (Div. 2) C. League of Leesins (大模拟)
  4. security和oauth2.0的整合
  5. redis linux工具安装,linux 安装redis缓存工具
  6. IDC评述网:1月下旬国内域名注册商净增量Top10
  7. mysql文章列表_MySQL-分享文章列表 - Su的博客
  8. 19.docker attach
  9. ps读写ddr3里面的数据 zynq_ZYNQ应该如何让PS端的opencv程序读取到ddr中的图像数据...
  10. Abaqus GUI界面解决中文乱码问题(插件中文乱码也适用)
  11. Your connection is not private Attackers might be trying to steal your information from nemertes.lis
  12. 晨读-如何打造出有效的“人脉关系”
  13. HFSS 快速建立微带线
  14. java 篮球队淘汰赛_篮球淘汰赛怎么安排 6支篮球队淘汰赛图
  15. 音响常用电解电容转发
  16. 抖音SEO优化源码,企业号搜索排名系统,技术理论分析搭建。
  17. Supper 使用注意点
  18. Direx 自学总结一
  19. 【软件下载_1】关于Panoply的下载
  20. MSRA被曝停招国防七子及北邮学生!

热门文章

  1. lol那个服务器有无限火力,全新游戏模式-无限火力上线
  2. 微信小程序之获取当前位置附近的美食、酒店、娱乐、超市等,并显示标记
  3. steam账号连接服务器遇到问题,无法预料的服务器浏览器反应 - Steam Support
  4. Emacs 浏览网页
  5. Windows系统win10系统磁力种子文件下载软件推荐
  6. android背景图拉伸,解决android:background背景图片被拉伸问题
  7. Linux编译dd源码
  8. C6678信号处理板学习资料:基于6U VPX TMS320C6678+XC7K325T 的信号处理板
  9. 阿里云的专业技术认证分为哪些?为啥要获得阿里云的ACP认证!
  10. electron start之后index.html页面不显示