Android开发方法数超过64k(65k)解决办法

因为公司的项目集成了很多无用的jar包,最近在添加Google地图的时候,出现了一个传说中的错误,方法数超过64k(65k),一看到我就吓呆了,之前我在其他博客看过这种情况,可是我一直没有遇到过,一直也不了解这是什么鬼。下面跟大家粗略介绍下什么是方法数超过64k(65k)和官方给出的解决办法。

到底是64k还是65k呢?不要问我,我也不知道。

看到了杰风居大大的博客里面写道说:
都没有错,同一个问题,只是不同的说法而已:
65536按1000算的话,是65k=65x1000
65536按1024算的话,是64k=64x1024
重点是65536=2^16,请大家记住这个数字。

报错提示
64k报错.png
解决办法
  • 方案一:分割Dex,官方链接:https://developer.android.com/studio/build/multidex.html#about
  • 方案二:使用插件化框架 栗子:https://github.com/singwhatiwanna/dynamic-load-apk
下面我们用方案一:分割Dex方法来解决,方案二我暂时不会,学会了再告诉大家
  • 首先我们要在module的build.gradle的dependencies 中添加: compile 'com.android.support:multidex:1.0.1'

    Android开发方法数超过64k(65k)解决办法_第1张图片
    multidex.png

  • 还有在在 defaultConfig 中添加:multiDexEnabled true

Android开发方法数超过64k(65k)解决办法_第2张图片
multiDexEnable.png
  • 在 AndroidManifest.xml 中的 application 标签中添加
Android开发方法数超过64k(65k)解决办法_第3张图片
添加.png

温馨提示:如果你的APP继承了application,需要重写attachBaseContext(Context base)方法和继承MultiDexApplication

Android开发方法数超过64k(65k)解决办法_第4张图片
重写和继续.png
  • 代码


    Android开发方法数超过64k(65k)解决办法_第5张图片
    继承.png

你可能感兴趣的:(Android开发方法数超过64k(65k)解决办法)