今天将一个普通工程当module导入另一个工程,踩了几个坑,所以记录一下,以后小伙伴遇到的话,可以借鉴一下。
1、首先找到导入按钮
2、找到要导入的工程
3、修改module名称
4、module的gradle中把之前的
apply plugin: 'com.android.application'
替换成
apply plugin: 'com.android.library'
module的gradle中把
'com.android.support:appcompat-v7:XXXX'
修改成与主app中的版本一致。
5、删掉一些没用的东西,比如application中的Main Activity标签内肯定有
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
记得要删掉,module里的res文件啊,理论上module没有界面,如果有的话可以改改,然后删掉,还是看情况删,我反正是都删了。
当这一步做完时,也许有的人就可以用了,但是应该还会有人不能用,我遇到过到这里还不能用的情况,我就想导入个module而已怎么那么麻烦,甚至还会报Manifest merger failed with multiple errors, see logs这种错误,玩呢?你就是日志,你不给我显示什么错,还让我看日志的日志???
那我们就搞,首先学会看日志的日志,在命令行中输入
gradlew processDebugManifest --stacktrace
然后神奇的东西就出现了,包括一些警告啊还有,问题
这个就是告诉我们有些权限我们重复注册了,比如他说清单文件中20行跟17行重复了,我一看,哦豁,虽然这个不是报错重点,但是还是删了为好,
然后我们继续往下看
哦豁,Error看到了吗,白色的Error,第一次见吧,这说的是啥意思,你的application有问题,有啥问题呢,我们去看看,
哦豁,报错了看到没有,还记得当时删了res里所有文件的事情吗,这就是后遗症,我们把这些红色都删掉,再重新编译一下试试
就很舒服!