Cannot fit requested classes in a single dex file (# methods: 120306 > 65536 ; # fields: 74726 > 65536)
原因:“当您的应用及其引用的库包含的方法数超过 65536 时,您会遇到一个构建错误”,也就是收到了Android的64k引用的限制,那什么是64k的引用限制呢?文档:Android 应用 (APK) 文件包含 Dalvik Executable (DEX) 文件形式的可执行字节码文件,这些文件包含用来运行应用的已编译代码。Dalvik Executable 规范将可在单个 DEX 文件内引用的方法总数限制为 65536,其中包括 Android 框架方法、库方法以及您自己的代码中的方法。
- 就是你的项目及其引用的库包含的方法过大,已经超过65k个方法。一个dex已经装不下了,需要个多个dex,也就是multidex ,因为Android系统定义总方法数是一个short int,short int 最大值为65536。
解决
方法一:
minSdkVersion 设为 21 或更高的值,则默认情况下会启用 MultiDex,并且不需要 MultiDex 支持库。
方法二:
minSdkVersion 设为 20 或更低的值,则必须使用 MultiDex 支持库并对应用项目修改
- 在清单文件中加入 defaultCon