当前位置: 首页 > news >正文

Direct local .aar file dependencies are not supported when building an AAR.

前言

起因:项目中含有视频播放功能,使用的是GSYVideoPlayer,因为公司网络问题经常依赖添加不了,所以将关于它的aar包全部下载下来直接本地依赖。

因为多个业务都可能涉及视频播放功能,为了复用,就想着将视频播放的功能提取出来,通过File-New Module-Androi Library创建了视频module,并在该module内,将aar包放入lib里,添加了依赖,在该module里面写了相关的业务,编译都没问题,但是一次Rebuild 项目时,报了如题目所示的错误,打包出的release版本也会报错。

解决步骤

如前言所说,我要依赖GSYVideoPlayer的aar包,有下面几个

GSYIjkJava-1.0.0.aar
gsyvideoplayer-androidvideocache-v8.1.7-release-jitpack.aar
gsyVideoPlayer-arm64-v8.1.7-release-jitpack.aar
gsyVideoPlayer-base-v8.1.7-release-jitpack.aar
gsyVideoPlayer-java-v8.1.7-release-jitpack.aar

1、 在项目的根目录下创建文件夹,File-New-Directory,为了方便记忆,我分别为上面的aar包建立名为testlib1、testlib2、testlib3、testlib4、testlib5的文件夹,

2、 在每个文件夹下创建文件,New-File,并将其命名为build.gradle

3、 在build文件内填写如下内容

例如testlib1内填写

configurations.maybeCreate("default")
artifacts.add("default", file('GSYIjkJava-1.0.0.aar'))

testlib2内填写

configurations.maybeCreate("default")
artifacts.add("default", file('gsyvideoplayer-androidvideocache-v8.1.7-release-jitpack.aar'))

后面的以此类推。这个default只是个名字,可以随意填写

4、 在项目的settings.gradle将新建的这几个文件夹设为lib

include ':testlib1'
include ':testlib2'
include ':testlib3'
include ':testlib4'
include ':testlib5'

5、 在你想使用这些本地aar包的module内,添加依赖即可,添加方式如下

api project(path: ':testlib1',  configuration: 'default')
api project(path: ':testlib2', configuration: 'default')
api project(path: ':testlib3', configuration: 'default')
api project(path: ':testlib4', configuration: 'default')
api project(path: ':testlib5', configuration: 'default')

因为业务关系,该依赖包内的内容需要被多个业务module使用,如果每个module都依赖一遍太麻烦,所以我使用api方式,这样每个业务模块依赖该视频模块即可使用这些aar包。

注意事项

  • 一开始会觉得麻烦,因为你多个依赖都得创建lib,想着在一个lib内的build文件,写多个aar包的配置行不行,实际验证是不可行的。一个lib的build文件只能写一个aar包,不能写多个,以下方式是错误✖的!!!

    configurations.maybeCreate("default")
    artifacts.add("default", file('GSYIjkJava-1.0.0.aar'))configurations.maybeCreate("default2")
    artifacts.add("default2", file('gsyvideoplayer-androidvideocache-v8.1.7-release-jitpack.aar'))
    

吐槽一下:

快半年没写文章了,今天解决问题时看了好多,看到这个真得来气,一个文章要关注才能看,问问题不直接回答还让私信,谁知道要搞啥,就是这些人搞的技术圈子乌烟瘴气,让写文章的人越来越不愿意分享,所以愤怒的写下这篇记录。想挣外快就写项目卖去,别整这些!!!

在这里插入图片描述

http://www.lryc.cn/news/61498.html

相关文章:

  • 【Java基础】day16
  • Neo4j | 一文入门Neo4j!
  • Python科研数据可视化
  • 叫板IT部门和专业软件公司,低代码成为企业数字化的新选择
  • leetcode 541. 反转字符串 II
  • java数据类型的转换以及精度丢失
  • 网络通信基础 - 多路复用技术(频分多路复用、时分多路复用、波分多路复用)
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK的函数转换示Bayer格式为BGR8格式彩色图像(C++)
  • 一块钱看Android Debug: avc denied 已存在的目录不能访问
  • URL 转为QR code(二维码)
  • CentOS软件那么老为什么大家还要用它?
  • 聚观早报|飞猪:五一出游需求爆发;​特斯拉一季度盈利同比跌20%
  • Redis缓存雪崩、穿透、击穿
  • 不要老盯着ChatGPT,这几家公司的产品同样不容小觑
  • DataBinding 大坑总结(网上我暂时搜不到解决方法)
  • Linux I/O复用函数的使用情况和select接口的介绍
  • leetcode:数字转换为十六进制数(详解)
  • Android 10 设置人脸解锁时,锁屏显示人脸解锁图标
  • 【嵌入式环境下linux内核及驱动学习笔记-(5-驱动的并发控制机制)】
  • 必学宝典 黑马《最新JavaWeb开发教程》上线
  • 【社区图书馆】学习如何读书
  • CO02工单组件,新增/删除/修改
  • MIT6.824 lab3AB记录
  • 一分钟了解美国棒球体系·棒球1号位
  • 通过ObjectMapper和JsonNode 把JSON字符串转换成树结构数据和获取树节点数据
  • 鉴源论坛 · 观模丨面向界面的图形化测试技术
  • Midjourney以图生图的详细教程(含6种案例介绍)
  • 基于单片机的电路特性测试仪的设计
  • 五一将迎2亿人次出行,君子签助力旅行社合规高效签旅游电子合同
  • IAP升级遇到的问题