最近公司需要合两个项目,我的操作方法是一种比较保守的方法。融合过程中遇见比较多的问题。拿出来和大家分享一下我的具体操作步骤和我在融合的过程中遇到的几点问题。
###项目融合之前的项目的简单介绍
我所要合成的项目是一个司机端一个货主端,两个项目基本的框架是在同一个框架中分离出来的。布局类似模块内容不同。
融合思路:
1.先不考虑第三方库的问题,先更换A,B项目包名;
2.B项目中更换除了base库和一些公共文件,或者公用的封装类之外的Activity,bean,adapter,fragment等都需要重新命名,layout中的xml文件也需要重新命名。
为了区分文件夹最好也进行命名。这一步是最繁重的并且要保证项目是可以正常运行的。
3.融合之前将studio的模式转成自动导入文件的模式;
4.将B项目通过第2步中重新命名的文件放到各自的文件夹中拷贝到A项目中。
5.最重要的一步就是修改这些报错;缺的文件或类查缺补漏。
6.融合AndroidManifest文件。
注释:
遇到的问题集锦:
填坑1.
Dao数据库的问题,原因是自动编译引起来的。
报错:
Error:Execution failed for task ':app:greendao'.
> Can't replace constructor in I:\Android\PrintItem\app\src\main\java\zhu\com\printitem\domain\Tb_Cbo_CLDL.java:14 with generated version.
If you would like to keep it, it should be explicitly marked with @Keep annotation.
Otherwise please mark it with @Generated annotation
解决方案:
将含有@Generated的自动生成的构建方法屏蔽掉重新build-》make Project一下就可以生成Dao文件了。这个也是说为什么很多人说构建好了这个数据库相关的Javabean文件了就不要再随便更改的原因了,不是不让更改,而是更改了会出现报错,需要去解决这些问题。这些是可以通过尽量不去更改一些文件避免的。
填坑2.
整合了模块之后高德地图不能使用的问题,这个问题是因为我现在包名更改了,我就需要去高德的控制台创建应用,提供我现在的报名和开发调试的sha1值来进行配置,更换掉工程中的key。注意,高德文档上提供的是获取你工程中debug.keystore的命令。而我的工程配置了jks文件,所以我现在需要的操作是获取到jks文件中的sha1值。具体操作步骤如下:
windows+R -> cmd -> cd c:\Users\Administrator.android
-> keytool -list -v -keystore F:\具体路径\mbt.jks
如果是要用debug版那么写keytool -list -v -keystore debug.keystore
填坑3.问题来了微信分享问题:
问题细节:点击微信分享按钮后首先提示“分享操作正在后台进行”,然后接着就提示“分享失败”。好吧,解决完了之后我才承认这个不是融合的问题是历史遗留问题。哈哈。此处也在这个地方备注一下。
解决方法:
oks.setImageUrl("http://www.写你自己的地址.cn/images/logos.png");
oks.setImagePath("/sdcard/test.jpg");
参考文件:
高德文档