android两个app合并

概述

最近公司需要将原来的app和现在的app合并(主要是为了用原来的功能),先说一下思路,分成一个主module和一个附module,其实就是一个app添加一个library,下面总结一下遇到的错。

将附module添加为library

1.首先在主module中通过File-->New-->Import Module引入附工程的module

2.打开附module的build.gradle修改apply plugin: 'com.android.application'为apply plugin: 'com.android.library'

这样就将你的附工程油app改为了library了,否则回报这个错

各种报错解决

1.如果你项目用到了Butterknife,或者onClick用到了switch(v.getId())的获取控件那么都会报错,因为附module的R.java里面的id都是变量(没用final修饰),而主module的R.java的id是常量(用final修饰),这是因为当附module添加到主moudle时两份R.java文件里面的id可能冲突,这时会修改附module的R.java文件,所以不能用final修饰。而注解和switch都只能用常量,switch还是乖乖改成if else吧。Butterknife提供了解决办法,在你工程的build.gradle中添加如下依赖,用8.8.1的版本我这里报错,可能有冲突

然后在附module中添加

这个插件是用来生成R2.java文件的,R2.java文件是copy的R.java文件的,但是多了final修饰(Butterknife最终findViewById时还是通过R.java文件找的)。

详情https://github.com/JakeWharton/butterknife

2.接下来你可能出现依赖冲突

,解决办法,将依赖统一管理起来,在工程的build.gradle做统一依赖配置

 

这样在各个module引用就没问题了

3.运行时又可能出现layout重名冲突,由于两个module都有同名的layout.xml文件,导致id错乱,只需要把附module的id对应的layout文件重命名就好了

到这就差不多了

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值