SDK 方法总数是不能超过 65k 的。是否也引入其他的三方库,导致总数超过限制。超出限制会导致部分class找不到,引发java.lang.NoClassDefFoundError。
解决方法:
近日,Android
Developers在Google+上宣布了新的Multidex支持库,为方法总数超过65K的Android应用提供了官方支持。
如果你是一名...
分类:
移动开发 时间:
2016-05-07 07:56:57
阅读次数:
548
官网地址:http://developer.android.com/tools/building/multidex.html 大概意思翻译一下,不是逐词逐句,意会意会。。
由于Android平台的持续增长,Android应用程序的大小也随之增大。当你的应用程序引用库达到一定的规模,就会出错(64K):
Conversion to Dalvik format failed:
Unabl...
分类:
其他好文 时间:
2016-05-06 15:54:18
阅读次数:
302
android MultiDex 原理下遇见的N个深坑(二)
自动化打包工具 multidex原理
这是在一个论坛看到的问题,其实你不知道MultiDex到底有多坑。
解决和遇到的其它问题,请见下一篇文章:android MultiDex 原理下超出方法数的限制问题(三)
遭遇MultiDex
愉快地写着Android代码的总悟君往工程里引入了一个默默无闻的jar然后Run了一下, 经过...
分类:
移动开发 时间:
2016-04-16 19:22:49
阅读次数:
316
我们在开发项目时,喜欢引入好多的第三方包,大大的方便了我们的开发,但同时,因为android方法总数的限制,不能超过65k,然而呢,随着我们的开发,65k最终还是会超过,所以,google就给出了这个解决方案,但一直好奇它是内部是怎么实现的,我们今天就来根据源码来看看这个包到底做了什么,怎么把多个d
分类:
其他好文 时间:
2016-02-27 18:08:28
阅读次数:
274
随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的错误: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException:
分类:
移动开发 时间:
2016-02-14 10:19:39
阅读次数:
231
MultiDex的产生背景当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文...
分类:
移动开发 时间:
2016-01-26 18:09:17
阅读次数:
185
携程DynamicAPK插件化框架源码分析Author:莫川插件核心思想1.aapt的改造分别对不同的插件项目分配不同的packageId,然后对各个插件的资源进行编译,生成R文件,然后与宿主项目的R文件进行id的合并。
要求:由于最终会将所有的资源文件id进行合并,因此,所有的资源名称均不能相同。2.运行ClassLoader加载各Bundle和MultiDex的思路是一样的,所有的插件都被加载到...
分类:
其他好文 时间:
2016-01-19 10:49:18
阅读次数:
224
出现的原因:当Android系统安装一个应用的时候,有一步是对Dex进行优化,这个过程有一个专门的工具来处理,叫DexOpt。DexOpt的执行过程是在第一次加载Dex文件的时候执行的。这个过程会生成一个ODEX文件,即Optimised Dex。执行ODex的效率会比直接执行Dex文件的效率要高很...
分类:
移动开发 时间:
2016-01-08 11:39:33
阅读次数:
253
Android插件化(二):使用DexClassLoader动态加载assets中的apk简介上一篇博客讲到,我们可以使用MultiDex.java加载离线的apk文件。需要注意的是,apk中的类是加载到当前的PathClassLoader当中的,如果apk文件过多,可能会出现ANR的情况。那么,我们能不能使用DexClassLoader加载apk呢?当然是可以的!首先看一下Doc文档.A clas...
分类:
移动开发 时间:
2015-12-28 09:11:42
阅读次数:
271
背景
产生65535问题的原因
LinearAlloc问题的原因
Google提出的MultiDex方案
MultiDex实现原理
缺点
美团的多Dex分包动态异步加载方案
多Dex分包
异步加载方案
参考资料
关于我
背景目前来说,对于使用Android Studio的朋友来说,MultiDex应该不陌生,就是Google为了解决『65535天花板』问题而给出的官方解决方案,但是这个方案并不完美,...
分类:
其他好文 时间:
2015-12-27 17:55:24
阅读次数:
1042