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=true
ide.text.editor.with.preview.show.floating.toolbar=false
ide.images.show.chessboard=true
Current Desktop: ubuntu:GNOME
$ ./gradlew --v
------------------------------------------------------------
Gradle 6.7.1
------------------------------------------------------------
Build time: 2020-11-16 17:09:24 UTC
Revision: 2972ff02f3210d2ceed2f1ea880f026acfbab5c0
Kotlin: 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.org
BUILD 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 30
defaultConfig {
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
}
dependencies {
// 添加库的依赖,如果有的话
}
./gradlew build
此命令将执行Gradle构建,生成AAR文件。生成的AAR文件将位于your-library-project/build/outputs/aar/目录中,其中your-library-project是你的库项目的目录名。
dependencies {
implementation files('libs/your-library-name.aar')
}