当前位置:   article > 正文

android两个app合并_android如何将demo打包成module

android如何将demo打包成module

概述

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

到这就差不多了

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/915167
推荐阅读
相关标签
  

闽ICP备14008679号