返回顶部
首页 > 资讯 > 精选 >android使用fat-aar打包,本地aar和第三方依赖库以及遇到的问题
  • 149
分享到

android使用fat-aar打包,本地aar和第三方依赖库以及遇到的问题

androidfat-aar 2023-08-18 07:08:43 149人浏览 薄情痞子
摘要

Android使用fat-aar打包,本地aar和第三方依赖库以及遇到的问题 为什么会用到fat-aar如何使用打出来的aarlib中存在多个架构,例如x86\x86_64我在打包okhttp和retrofit的时候遇到的问题

为什么会用到fat-aar

需要把有个模块打包成aar,直接打包的话,模块中引用的jar、aar、第三方依赖库都不会打包进去。直接生成的aar缺少内部引用的以来,所以要用到fat-aar来把模块中用到的依赖也打包进去。

如何使用

首先在项目的gradle加入

classpath 'com.GitHub.kezong:fat-aar:1.3.8'

在repositories加入

flatDir {            dirs 'libs'        }

在这里插入图片描述
3. 在需要打包aar的build.gradle中加入

apply plugin: 'com.kezong.fat-aar'

第三方库需要把依赖implementation改为embed,例如:

implementation('com.squareup.okHttp3:okhttp:4.11.0')改为:embed('com.squareup.okhttp3:okhttp:4.11.0')
  1. 本地的aar引入,例如:
implementation files("libs/xxx.aar")改为:embed(name: 'animplayer', ext: 'aar')//需要加上这个compileOnly fileTree(dir: 'libs', include: ['*.jar', '*.aar'])

打出来的aarlib中存在多个架构,例如x86\x86_64

我们不需要这些so库的话可以过滤掉
在需要打包的模块build中加入要过滤的so

android{//不需要把这些架构打进去        packaginGoptions {            exclude 'lib/x86/*.so'            exclude 'lib/x86_64/*.so'        }}

我在打包okhttp和retrofit的时候遇到的问题

我通过这种方式去把okhttp和retrofit打包打aar

embed('com.squareup.okhttp3:okhttp:4.11.0')embed('com.squareup.okio:okio:3.2.0')embed('com.squareup.retrofit2:retrofit:2.9.0')embed('com.squareup.retrofit2:converter-gson:2.9.0')

打包过程中没遇到任何问题,但是在使用的时候却崩溃了。
通过排查定位发现是okhttp依赖了okio,retrofit依赖了google的gson
但是打包aar的时候并没有打包进去
在这里插入图片描述

我看fat-aar官网是有说明的:

如果你想将所有远程依赖在pom中声明的依赖项同时打入在最终产物里的话,你需要在build.gradle中将transitive值改为true,例如:
fataar {
transitive = true
}
官网链接可以自己看一下

我加了这个照样没有生效。

解决办法
只好自己把这两个以来手动添加,更改后的代码为:

//okhttp3 依赖了okio        embed('com.squareup.okhttp3:okhttp:4.11.0')        embed('com.squareup.okio:okio:3.2.0')        embed('com.squareup.okhttp3:logging-interceptor:4.11.0')        //retrofit 依赖了gson        embed('com.squareup.retrofit2:retrofit:2.9.0')        embed('com.squareup.retrofit2:converter-gson:2.9.0')        embed('com.google.code.gson:gson:2.8.5')

你遇到其他问题怎么处理?

我这里只是遇到了这个问题,如果你使用其他依赖有问题,可以看看是否依赖里的依赖没有打进去,可以查看一下aar里面的依赖库,然后跟自己项目依赖树做一下对比,看看有没有缺少库。

欢迎评论,我可以在文章中加上有问题的库

来源地址:https://blog.csdn.net/Mr_ziheng/article/details/131010454

--结束END--

本文标题: android使用fat-aar打包,本地aar和第三方依赖库以及遇到的问题

本文链接: https://lsjlt.com/news/373674.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作