如何把一个app导入另一个app?教你快速解决!

版权声明:版权为博主所有,如需转载,请注明来源 https://blog.csdn.net/qq_38508087/article/details/84619574

概述
       最近公司需要将原来的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文件重命名就好了

到这就差不多了,如有疑问,请联系[email protected],欢迎指正!
原文:https://blog.csdn.net/qq_39191116/article/details/82461794 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/qq_38508087/article/details/84619574