怎么将一个aar打包进另一个aar

方法一、使用fat-aar插件,不过由于fat-aar插件较长时间未更新,导致无法支持最新的Android版本(已不推荐使用)

第一步:在你的工程根目录下的build.gradle文件中添加以下代码:
buildscript {

 repositories {
   google()
   mavenCentral()
   jcenter()
   maven { url "https://jitpack.io" }
}

 dependencies {
   classpath 'com.android.tools.build:gradle:4.2.0'
   classpath 'com.github.kezong:fat-aar:1.3.8'
}
}

 

第二步:在你要打包成aar的模块下的build.gradle文件中添加以下代码:
apply plugin: 'com.android.library'
apply plugin: 'com.kezong.fat-aar'

注意:确保 ‘com.cpdroid.fat-aar’ 在’com.android.library’后面

第三步:用关键字 “embedded” 替代 “implementation” 或者 “compile” 就可以把依赖库打包进生成的 aar 文件,例如:
dependencies {
 embed fileTree (dir: 'libs', include: [ '*.aar' ])
 embed project (':moduleA')
 embed 'com.gongwen:marqueelibrary:1.1.3'

}

接下来配置 key文件

可以在 local.properties 目录内进行配置 

keystore.path=/Users/rbq/myDocument/key/inksi.jks

keystore.password=boxinkeji

key.alias=inksi

key.password=boxinkeji

使用 Gradle 命令行工具来生成 release 版本的 aar 文件。具体操作如下:

  • 打开 Terminal 窗口,可以在 Android Studio 中选择 View -> Tool Windows -> Terminal

  • 在命令行中输入 ./gradlew assembleRelease,回车执行

  • 等待打包完成,控制台会显示 BUILD SUCCESSFUL

  • 打包完毕后,可以在 build -> outputs -> aar 文件夹下找到生成的 release.aar 文件

  • 如果提示./gradlew: Permission denied,则可使用 chmod +x gradlew 命令来给 gradlew 文件添加可执行权限

./gradlew clean build 清理并重新编译

javadoc在使用的指令中自定jdk版本,要在命令行中使用javadoc命令,您可以按照以下的语法:

javadoc [options] [packagenames] [sourcefiles] [@files]

其中,packages是您要生成文档的包名,source-files是您要生成文档的源文件名,options是一些可选的参数,比如-encoding, -charset, -source等,@argfiles是包含参数、包名和源文件名的文件名。

例如,如果您要为Doc.java这个源文件生成文档,并指定编码和字符集为UTF-8,JDK版本为1.8,您可以输入以下的命令:

javadoc -encoding UTF-8 -charset UTF-8 -source 1.8 Doc.java

 

方法二、使用单独的指令,将opencv打包成aar(推荐使用)

第一步:假如opencv已经以module的形式添加进了项目当中,可以在Android studio的指令窗口执行如下指令

./gradlew :opencv:assembleRelease --warning-mode all

第二步骤 将编译好的opencv的aar文件放入到最后要打包的module的libs里边,再打包这个module

指令:比如

./gradlew :mxSdk:assembleRelease --warning-mode all

如果编译整个项目,则使用指令

./gradlew assembleRelease

posted @ 2024-05-24 17:39 brave-sailor 阅读(717) 评论(0) 推荐(0) 编辑
摘要: 在一个线程中需要获取其他线程的执行结果,能想到几种方式?各有什么优缺点? 结合这个需求,我们使用6种方式,来对之前学过的知识点做一个回顾,加深记忆。 方式1:Thread的join()方法实现 代码: package com.itsoku.chat31; import java.sql.Time; 阅读全文
posted @ 2023-04-10 13:56 brave-sailor 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 一.引言: 在我们日常的开发过程中,我们经常会开启多个线程或者创建一个线程池去执行多个并发任务,当所有任务执行完毕后,我们一般会做一个统一的处理。那我们如何知道多个线程的任务已经全部执行完毕了呢? 今天由我来为大家介绍几种方法: 二.join()方法 在这里插入图片描述 Thread thread1 阅读全文
posted @ 2023-04-10 13:54 brave-sailor 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 其实tableveiw只有两种注册方式,注册和非注册。但是因为有了xib所以两种方式里纯代码和xib又形成了两种写法,今天有时间总结到一起,方便大家看。 注册方式: 注册cell //向 tableView 注册 cell 的样式 如果是 纯代码的自定Cell 使用该方法 [self.tableVi 阅读全文
posted @ 2023-02-23 14:04 brave-sailor 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 相信在做项目的时候,各位同学都有碰到,这样一个问题,页面二级跳转或三级跳转,一键返回到一级页面的需求 今天有个小伙伴问我,他的需求是,在提交一个表单的页面,提交成功后,要展示一个提交表单成功的页面,当用户此时点击返回按钮事,页面就要略过表单页面,放回到上一级页面。 也就是A 跳转到 B(表单页面) 阅读全文
posted @ 2022-10-28 10:56 brave-sailor 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 一.isSubclassOfClass简介 /* 判断是否为对象是否为ClassName或其子类的实例 */ - (BOOL)isSubclassOfClass:(Class)aClass; isSubclassOfClass 和 isKindOfClass的 作用基本上是一致的,只不过一个是类方法 阅读全文
posted @ 2022-10-21 13:47 brave-sailor 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 文件所在位置如:/Downloads/test.sh 方法一: 1、命令行进入到.sh文件所在的目录,cd Downloads ; 2、输入命令 ./test.sh ; 方法二: 直接将.sh文件拖入终端; 方法三: 命令行输入.sh文件完整路径:/Users/用户名/Downloads/confi 阅读全文
posted @ 2022-10-21 09:17 brave-sailor 阅读(2468) 评论(0) 推荐(0) 编辑
摘要: 什么是dispatch_semaphore(信号量)? 以一个停车场的运作为例。简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看 门人允许其中三辆直接进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得 阅读全文
posted @ 2022-10-19 15:43 brave-sailor 阅读(791) 评论(0) 推荐(0) 编辑
摘要: 在更新Xcode14之后发现编译项目在iOS12.5以上的系统都正常,但是在跑iOS12.5以下的系统,例如iOS11,和iOS12.1之类的系统会报错,报错如下: dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib 阅读全文
posted @ 2022-10-17 09:54 brave-sailor 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 最近换了mac,第一次使用rn做ios的项目 发现一个问题,在使用react-native run-ios的时候,会遇到 info Installing required CocoaPods dependencies卡着一直不动,盲猜是install的源不好使了。 了解了一下之后,CocoaPods 阅读全文
posted @ 2022-10-08 14:22 brave-sailor 阅读(410) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示