由于业务需求导入了Google Play Service 的库,编译直接报错。经查发现超出65K个方法,一个Dex已经无法包含。
开发用的Android Studio,首先在 build.gradle的defaultConfig中添加multiDexEnabled true,来突破65535方法的限制,编译成功,但运行起来后直接报一些类似微信等的第三方库NoSuchMethodException异常,各种 Proguard,配置等办法都设置了,还是无解。。
其实在Google官方已经给出解决方案,Building Apps with Over 65K Methods,在build.gradle的dependencies里面添加compile ‘com.android.support:multidex:1.0.0’,自定义的Application继承MultiDexApplication,另外Google Service也可以根据业务需要单独引入包,如
compile 'com.google.android.gms:play-services-maps:6.5.87'
compile 'com.google.android.gms:play-services-location:6.5.87'