突破65536
错误信息:
trouble writing output:
Too many field references: 131000; max is 65536.
You may try using --multi-dex option
错误原因:
在gradle中implementation过多或过大
其中
数字65536是关键,Android平台的Java虚拟机Dalvik执行Dex程序时,使用的是short类型来索引DEX文件中的方法。这就意味着单个Dex文件可被引用的方法总数被限制为64x1024, 即65536。为突破这个限制,需要使用multidex来生成多个dex文件。
方法:
1.修改模块级builde.gradle文件
加入: multiDexEnabled true
android {compileSdkVersion 21buildToolsVersion "21.1.0"defaultConfig {...minSdkVersion 14targetSdkVersion 21...// Enabling multidex support.multiDexEnabled true}...
}dependencies {compile 'com.android.support:multidex:1.0.0'
}
2.在manifest文件中,添加MultidexApplication Class的引用
加入: android:name=“android.support.multidex.MultiDexApplication”
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.android.multidex.myapplication"><application...android:name="android.support.multidex.MultiDexApplication">...</application>
</manifest>
另外:
详细ke参考链接: http://connorlin.github.io/2016/04/15/Android%E5%BA%94%E7%94%A8%E4%BD%BF%E7%94%A8Multidex%E7%AA%81%E7%A0%B464K%E6%96%B9%E6%B3%95%E6%95%B0%E9%99%90%E5%88%B6/