安卓解决打包超出65535方法

面对Android项目方法数超过65K限制的问题,本文探讨了两种解决方案:一是通过将项目拆分为多个独立模块并利用反射机制加载;二是采用谷歌提供的插件自动拆分dex文件。同时考虑项目实际情况选择了适合的实施路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

           随着整个项目越来越大,整个项目无法打包已经迫在眉睫,当时为了临时快速解决此问题,我将一些jar包删去,但是这也不是长久之计,因为有些jar包互相之间引用如果删除某一个整个工程不会报错,但是运行的时候就会崩掉,为了避免自己给自己挖坑就得想一个最终解决方案,然后花了一两天时间去研究方法超出的问题了,解决方案有两大种
    
        第一种
:将大工程分成若干个小工程由一个主工程采用反射机制去动态加载,说白点就是在一个Activity上去操作上面的View对象,对象的加载采用反射的机制去加载,由于ZT项目每个模块之间耦合太强了采用这样的方案开发起来还是后面还是会有很多问题,如果像支付宝和携程一样,每个模块功能独立性很强的话采用这个方案自然要比下面好,因为每个功能为单位,分成多个小组,维护起来和团队管理更加方便,每次运行测试会更快,某个功能块出了问题可以动态升级不需要重新安装等等具体的实现方案我就不赘述了,因为这篇http://blog.youkuaiyun.com/singwhatiwanna/article/details/40283117博客已经写得够详细了,我自己已经按照博客里面实现过了,可以使用。
       第二种
:采用谷歌提供的插件对dex进行拆分,只需要在gradle里进行配置即可,当方法超出65k时自动拆分,其实还有一种方案和第二种方案差不多,基于Ant进行拆分,跟上面的方案比起来这个的优点在于可以指定第三方jar进行拆分,可以灵活配置。这种方案也有人写的足够好了我就不累赘的说一遍了,本人已经按照此http://blog.youkuaiyun.com/yuanzeyao/article/details/41809423篇博客试过一遍。
      
      由于项目周期比较赶几乎不给你歇息的时间,我考虑到几点因数,因数1,周期短要分离项目几乎让所有的兄弟们加班加点的做。因数2,虽然安卓人不多但是也有小9人,要想所有人都按照此框架去做,迁移速度也会变得很慢。因数3.由于业务之间的耦合性太强了,如果采用此框架,后面如果某一个分支跳转逻辑有变动,其他项目组的人都得跟着修改因此成本也是很高的。因数4,虽然有小9人但是人员但是还不足以采用此框架,因为我们现在是9个人并发去做三个版本,一个支付大改造,一个是财友功能大改造,一个是保证现有产品bug修复和产品迭代,每个版本在SVN上一个分支,每个分支相互独立需要3个人去处理,然后bug修复之后需要合到支付和财友上面,如果现在再拆分再细分后面人员根本就不够,加班加死了也搞不完,因为此综合上面四个因数我决定不用此框架,采用第二种谷歌自带的插件去解决此问题,只需要再build,gradle配置一下即可,采用这个方案唯一不便的就是项目组所有人都采用android studio进行开发,IDE全部由原来的eclipse转到android studio,由于整个项目组水平参差不齐,我担心有的人一天都浪费在安装环境和熟悉环境上面我给了一天到两天的缓冲期,也就是当天仍然采用eclipse开发项目,然后随便把android studio安装好,我把svn上所有以前eclipse项目配置成android studio可以直接导入的方式,这样子既不会很影响开发进度又有一个缓冲期。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值