教程度娘提供的很详细,在此记录下我自己碰到的百度没有或者比较难搜到的一些的坑。
1,集成到新项目后,类的全路径会加上新项目包名,有些判断任务栈的需求需注意
2,听云SDK和阿里云反馈,友盟分享在webView相关代码上有冲突
3,重复引用的jar包处理:
(包含新项目中其他的aar与你要集成的aar有重复jar)可通过将你要集成的项目的aar中的jar移到其他module,再通过依赖module的方式引用jar,即可解决冲突。
开发之前
如项目需求打成aar形式SDK,就应在开发之初注意:
1,res下所有资源文件最好带上唯一的标识,以免集成到新项目后资源文件冲突。
如果是 aar 依赖,gradle 会自动帮我们找出新版本的库而抛弃旧版本的重复依赖。但是如果你使用的是 project 依赖,gradle 并不会去去重,最后打包就会出现代码中有重复的类了。
2,所有开发代码应该写在lib module下。集成三方SDK时所要以来的jar最好放在另一个lib module下,以依赖形式引用。
3,关于混淆,只需配置在主lib module下,运行module应关闭混淆,防止二次混淆,mapping文件错乱。
集成步骤
以下内容整合了网上搜到的文章
1,要输出 aar 文件,必须将 Module 配置为 library,在 gradle 文件中如下:
Android studio每次同步或build都会在lib module下生成aar文件,包含资源文件的SDK文件。
- 输出 aar :
apply plugin: 'com.android.library'
; - 输出 apk :
apply plugin: 'com.android.application'
。
2,项目中引用aar:
gradle 依赖引用 aar:
-
compile(name: 'xxx', ext: 'aar')
。
repositories { flatDir { dirs 'libs', '../xxxxx/libs' //第一个libs是主项目的libs,其他module的libs路径需要用逗号隔开../module名/libs } mavenCentral() }