AndroidStudio打包aar丢失远程依赖问题解决
问题出现原因
最近在github上下载了一个源码项目,自己改了点源码,然后由于现在发布jcenter挂了,mavenCenter又比较麻烦,索性,就打包本地aar了。
提一句,Android Studio 打包aar
也很简单
在Module右侧gradle

如果没有这个选择,进入设置

把这个勾选去掉,重新加载gradle一下就又了。
进入正题
引入本地依赖的时候,结果,发现aar中引入的第三方依赖,在项目中找不到。
在进行了一番百度之后了解到,因为之前发布到jcenter的aar,会有pom文件声明引用了哪些外部资源包,现在本地的就一个aar,无法声明应用了哪些外部资源包。
所以解决方案有两种
**一、要不发布本地或者源码maven项目,然后在项目中引用外部仓库中的aar(过程比较繁琐,不在本文探讨范围内)**https://blog.csdn.net/qisan__/article/details/119642690
二、在本地module要打包aar的时候,直接引入外部源码到项目中,一起打包成aar(这里采用第二种方式)
解决方法
使用fat-aar-android打包aar
第一步:在项目根目录的gradle文件中添加
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
//添加插件
classpath 'com.github.kezong:fat-aar:1.3.6'
}
第二步:在library中添加
apply plugin: 'com.kezong.fat-aar'
第三步:使用 embed 关键字替换引入依赖的 implementation,api 例如
//正常情况,引入远程依赖
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
//需要插入aar包的远程依赖
embed 'com.vividsolutions:jts:1.13'
embed 'com.mapbox.mapboxsdk:mapbox-sdk-turf:5.5.0'
第四步:生成aar

一顿编译过后,output文件夹下就生成我们需要的aar包了,重要的是这个aar是包含远程依赖的aar包,可是以直接引入libs使用的
Loading...
