run不行,buildapk可以出包到后来的run可以,buildapk不能出包,到最后都不行,我是如何一步步从删码到跑路的。

四月芳菲尽,四月也可以是寒秋,接近冰冷的寒冬。

先来一波压力,,,

算了,还是先来讲一下前提,,,

话说有这么一个需求,讲需求之前还是先说一下故事背景,,,

话说客户方财大气粗,花了五百多万搞了一个内部的支付平台,支付平台的目的是将每一笔交易都牢牢的掌握在自己的手里,不仅仅是我们正在做的项目要使用,而是所有的他们所控制的项目,也就是说他们所掌控的生态系统都要经过这个支付平台。支付平台是什么样呢,首先是后台支持就不说了,移动端的表现为封装成一个SDK,SDK内部集成有:自己平台支付、支付宝、微信、百度钱包、银联、广大银行等等支付方式。

OK我们来说一下前提,前提是我们的APP早已经集成了微信、支付宝、百度钱包、和银联,并且两套所使用的三方SDK的版本是不一样的,有人说既然接支付平台,那么之前的肯定不用了,直接将之前的废了不就行了吗,没那么简单骚年,恶魔的那双眼睛整邪恶的笑着盯着你呢。你还不瑟瑟发抖吗?需求说了,由于平台集成了两个地区,所以,北京的所有流水必须使用支付平台,而其他的地区的,不管以后增加到多少个地区,流水必须不能走支付平台,防止对账出问题,听明白了没骚年,也就是说一个APP中必须得有两套支付。

我们来描述一下过程中的问题,再来说说压力,操刀开干吧,只能亲自操刀了,好第一步,先接入支付平台SDK,这尼玛,eclipse?啥?eclipse?啥时候了还用eclipse?额,忍了,咋接入啊,看接入文档吧,打开,咦?就六行字?有这么简单,瞬间感觉坑来了,原来这只是如何跳转到他们支付平台的代码,传了一些值进去,传了个请求码。咋用?不知道,原来那一帮开发这个的居然不是专业人员,好吧,忍。翻翻,恩,有demo,把demo跑起来,说什么来着?eclipse,跑不起来,这,,改?不行,不能动,虽然说可以改,但是不能替他们干活啊,最最重要的是责任的划分,出问题了到底是谁的原因?说不清楚了,不行,不能忍了,打回去,给我一份studio的,啊,,,!

据说改为studio的了,拿来打开美滋滋,噗~啥啊,这不还是eclipse的嘛,这强制转换studio啊,这谁不会弄,谁要这个了?这,,,人家总能说得过去,先用着吧,这得有多少坑,好吧接入,考进来呗,恩,硬编译,让他把冲突暴露出来,恩冲突了一个支付宝,比较一下版本,保留最新的,恩还好,向下兼容了,没问题,恩恩不错好像。恩,银联冲突了,同理,微信也冲突了,继续,百度支付冲突了,恩亦然,继续,咦?报错了?没向下兼容?!!,还真的没有向下兼容!!那就用老版本,老版本没有新版本的方法,泥马,死胡同了是不,遍历所有的百度支付版本,居然存在不同版本回调的code代表不同含义的情况,我,,,这怎么搞,找项目经理谈需求吧,经过沟通,发现非北京地区不需要支持百度钱包支付,完全可以干掉了,感觉很爽(如果非得兼容,这里有个思路,将其中的一种支付方式按照另一种重新集成一遍),在我集成支付的这几天里,团队的小伙伴突然告诉我主干的分支buildapk出不来包了,我隐隐有种不详的预感,赶紧试了一下正在进行的分支,还好我的能出来,等我忙完手头上的这个再去解决那个问题吧,终于没有jar冲突了,感觉好爽,准备玩一把,装到手机上,恩跳转调起支付页面,额,感觉哪里不对劲,还崩溃了,直接就想到要么是混淆出问题,要么是没在清单文件中注册相关东西,果然,要混淆文件吧,混淆文件要了好几天,清单文件也搞了搞,还是不行,问题出在哪呢,想了想别的第三方集成,好像没有初始化诶,怎么初始化啊,接入文档又没写,翻demo吧,恩,在.class文件中翻到了一行初始化代码,emmm。搞吧,一切OK,能调起来了,最难的部分过去了,交接给别人做业务相关,赶紧搞之前的bug吧。

Error:FAILURE: Build failed with an exception.


* What went wrong:
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: Error while generating the main dex list.


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.


* Get more help at https://help.gradle.org


BUILD FAILED in 13s

就是这货,说实话搞了一星期,具体解决方案其实就是一句话,可参考我的文档

app:transformClassesWithMultidexlistForDebug

在这一星期当中,我接到了另一个噩耗,交接我工作的小伙伴告诉我,,,那个工程不能直接run到手机上了

我,,,,

具体报错:

More than one file was found with OS independent path 'org/bouncycastle/x509/CertPathReviewerMessages_de.properties'
* What went wrong:
Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> More than one file was found with OS independent path 'org/bouncycastle/x509/CertPathReviewerMessages_de.properties'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 6s

这是最能说明问题的报错,其他的一大堆就不列举了。

先来捋一下当前的情况,一个分支不能buildapk,一个分支不能run,假如将这两个分支合到一起也就意味着既不能出包也不能安装,看看时间,还有五个工作日不到就得提交代码测试,不能run还好,大不了我安排大家委屈委屈出包拖到手机里面去安装调试,不能出包的话,首先说我们自己的测试这关怎么过,本来这次上线的内容就多,重大功能点也多,本来上个版本因为测试不充分出现的线上事故,这次如果不能及时给到包,那岂不是刚好给人落下口实吗,再说客户那边,如果出不来包,没法上线,明天就要上线了今晚加班熬死一群人也找不到解决方案,到时候被逼着搞也搞不出来,那滋味可不好受,现在也解决了几天了,都没有好的方案,谁能保证到临上线前被逼着就能搞出来。看来这已经不是某一个人的事了,而是上升到整个团队了,如果解决不了那就是整个公司交付出了问题,越想压力越大,明天得给大家开个会,让大家重视起来了,不能有那种我盯着就万事大吉的心理了。

开会之后果然大家也都紧张和重视起来,在各自忙完手头的工作后纷纷投入解决问题的大军,首先第一个问题被解决,能出包了,我顺带着将两个分支合并,结果是run也不行,buildapk也不行了,我敏锐感觉到这两个问题就是同一个问题,让大家继续解决,不要因为情况变得更糟而气馁,最终终于发现了问题,并予以解决。抬头已是周日十点多了,回头想想,这几天因为这个问题造就了多少个不眠夜。

app:transformResourcesWithMergeJavaResForDebug

第二天,太阳照常散发出光芒,一切都被刷新一遍,好像什么都没有发生,果然,出包比之前催的更急,暗暗庆幸,如果没有解决将面临什么后果,想想都有些后怕。

碌碌的人们,正向下一个难题奔去。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值