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

Android Gradle 命令打包AAR

平台

     Android Archive (AAR) 文件是一种特定于Android的存档文件格式,用于将Android库和资源打包成单个可重用的单元。AAR文件通常用于共享和分发Android库,以便其他Android应用项目可以轻松引用和使用这些库。
AAR文件是一种便捷的方式,用于封装、共享和分发Android库和资源。它们是Android生态系统中的一种重要工具,有助于促进代码重用、模块化开发和更快的Android应用开发。

  • Ubuntu 20.04

  • Android Studio Giraffe | 2022.3.1 Patch 2

Runtime version: 17.0.6+0-17.0.6b829.9-10027231 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Linux 5.15.0-84-generic
GC: G1 Young Generation, G1 Old Generation
Memory: 3072M
Cores: 4
Registry:external.system.auto.import.disabled=trueide.text.editor.with.preview.show.floating.toolbar=falseide.images.show.chessboard=true
Current Desktop: ubuntu:GNOME
  • Gradle
$ ./gradlew --v------------------------------------------------------------
Gradle 6.7.1
------------------------------------------------------------Build time:   2020-11-16 17:09:24 UTC
Revision:     2972ff02f3210d2ceed2f1ea880f026acfbab5c0Kotlin:       1.3.72
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM:          17.0.8.1 (Private Build 17.0.8.1+1-Ubuntu-0ubuntu120.04)
OS:           Linux 5.15.0-84-generic amd64

方法

     要使用命令行编译生成AAR文件,你需要使用Gradle构建工具和相应的构建脚本。
本文基于现有的AndroidStudio 项目, 首先看下文件结构

Project|-- Module1|--Module2|-- ...
./gradlew Module1:assembleRelease

成功后, 可以在: Module1/build/outputs/aar/Module1-release.aar


错误1

> Task :Module1:compileReleaseJavaWithJavac FAILED
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.FAILURE: Build failed with an exception.* What went wrong:
Execution failed for task ':Module1:compileReleaseJavaWithJavac'.
> java.lang.IllegalAccessError: class org.gradle.internal.compiler.java.ClassNameCollector (in unnamed module @0x5e4091b4) cannot access class com.sun.tools.javac.code.Symbol$TypeSymbol (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.code to unnamed module @0x5e4091b4* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 3s
11 actionable tasks: 1 executed, 10 up-to-date

同样的方法之前没有问题, 突然报错?
琢磨了下, 近期更新了系统, 开发工具, 还有JDK, 当前是JDK17, 尝试替换回JDK11, 参考:
How do I tell Gradle to use specific JDK version?

方法1:

./gradlew Module1:assembleRelease -Dorg.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64

方法2:

Project/gradle.properties

org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64

解决

补充

生成AAR文件的一般步骤(来自GPT):

  • 创建Android库项目:
    首先,创建一个Android库项目,该项目将包含你的库代码和资源。你可以使用Android Studio创建项目,或者手动创建一个包含build.gradle文件的项目目录。

  • 创建build.gradle文件:
    在库项目的根目录下,创建一个名为build.gradle的Gradle构建脚本。下面是一个简单的示例:

apply plugin: 'com.android.library'android {compileSdkVersion 30defaultConfig {minSdkVersion 16targetSdkVersion 30versionCode 1versionName "1.0"}
}dependencies {// 添加库的依赖,如果有的话
}
  • 构建AAR文件:
    打开终端,导航到库项目的根目录,并执行以下Gradle构建命令:
./gradlew build

此命令将执行Gradle构建,生成AAR文件。生成的AAR文件将位于your-library-project/build/outputs/aar/目录中,其中your-library-project是你的库项目的目录名。

  • 使用生成的AAR文件:
    你可以将生成的AAR文件用于其他Android应用项目。要使用AAR文件,将其复制到目标项目的libs目录中,并在目标项目的build.gradle文件中添加以下依赖:
dependencies {implementation files('libs/your-library-name.aar')
}
http://www.lryc.cn/news/193348.html

相关文章:

  • 如何导出带有材质的GLB模型?
  • C/C++面试常见知识点
  • 详细介绍数据结构-堆
  • 001flutter基础学习
  • leetCode 1143.最长公共子序列 动态规划 + 图解
  • 解密人工智能:KNN | K-均值 | 降维算法 | 梯度Boosting算法 | AdaBoosting算法
  • Python深度学习实践
  • VS2017+QT+PCL环境配置
  • 207、SpringBoot 整合 RabbitMQ 实现消息的发送 与 接收(监听器)
  • 想要精通算法和SQL的成长之路 - 滑动窗口和大小根堆
  • Python算法练习 10.15
  • 智能防眩目前照灯系统控制器ADB
  • 若依 ruoyi 路径 地址 # 井号去除
  • Elasticsearch 和 Arduino:一起变得更好!
  • 基于Ubuntu环境Git 服务器搭建及使用
  • 【quartus13.1/Verilog】swjtu西南交大:计组课程设计
  • 基于springboot的网上点餐系统论文开题报告
  • Hadoop3教程(九):MapReduce框架原理概述
  • 使用PyTorch加载数据集:简单指南
  • 【考研数学】线性代数第六章 —— 二次型(2,基本定理及二次型标准化方法)
  • Raven2靶机渗透
  • UE5中双pass解决半透明材质乱序问题
  • Cisdem Video Player for mac(高清视频播放器) v5.6.0中文版
  • 数据库管理-第109期 19c OCM考后感(20231015)
  • 初出茅庐的小李博客之SPI工作模式
  • SpringCloud-Bus
  • Adobe2024 全家桶更新了,PS、Ai、AE、PR应用尽有
  • 【斗破年番】彩鳞换装美翻,雁落天惨死,萧炎暗杀慕兰三老遇险,彩鳞霸气护夫
  • 华为端到端战略管理体系(DSTE开发战略到执行)的运作日历图/逻辑图及DSTE三大子流程介绍
  • Linux友人帐之调试器--gdb的使用