Android Studio转换Project成AAR

一:简介

一个APP需要集成到另一个APP中使用,这个目前有两种方式集成,一种是使用动态加载技术;另一种是比较原始的,将工程做成一个aar供第三方使用。本篇主要记录后者的基本流程和问题解决。


二:步骤

1.需要创建一个壳程序,用来启动我们aar里面的入口程序。
2.将我们的APP以module的方式引入,修改build.gradle文件

    apply plugin:'com.android.library'

去除applicationId “xxx.xxx.xxx”
3.第三方关联这个库即可。


三:问题

1.壳程序依赖了module,但是无法识别里面的类,当使用快捷键提示时,依然弹出依赖该module。
我这边是因为module里面有多渠道打包的设置,去掉之后就可以了。
2.Manifest merger failed with multiple errors, see logs
两个Application标签里面的属性冲突了,需要合并,在manifest根标签上加入xmlns:tools=”http://schemas.android.com/tools”,并在Manifest.xml的application标签下添加tools:replace=”icon, label, theme”,replace里面填上与壳工程冲突的属性名称。
或者将冲突的直接删除。
3.Application的问题
因为一个APP只能有一个Application(为方便表述,壳里面的Application名称为OuterApplication,module里面的成为ModuleApplication),在module中manifest配置的ModuleApplication必须去掉,此时ModuleApplication不再是一个Context,而且activity获取的Application也不再是ModuleApplication。所以原来module里面如下的强转用法全部要修改。

ModuleApplication moduleApplication = (ModuleApplication) activity.getApplication();

4.switch问题
由于工程转化成module之后,R.id之类的不再是一个final类型,导致了不能作为一个常量使用,必须转化成if else。Android Studio可以使用快捷键(alt+enter)一件转化,很方便。一般一个工程半个小时以内可以改完。


5.多个APP集成同一个aar包,不能同时安装到手机的问题。
a.是APP包名重复了。
b.而在包名不一致的情况下还不能同时安装,就看看所有APP的AndroidManifest.xml里面有没有重复的provider,包括aar里面也要看一下,就算是两个APP,里面的provider也不能重复。如果不需要使用,注释掉即可,如果一定要使用,那就改一下路径。
c.自定义权限,AndroidManifest里面看看有没有相同的自定义权限。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值