我想在Android Studio中为我的库创建一个aar文件,我会使用一个jar选项,但我的库有资源。
知道如何从库中创建aar文件吗?
我想在Android Studio中为我的库创建一个aar文件,我会使用一个jar选项,但我的库有资源。
知道如何从库中创建aar文件吗?
当前回答
从本地构建中检索导出的.aar文件
如果你有一个模块被定义为一个android库项目,你将在该项目的build/outputs/aar/目录中获得所有构建风格(默认为调试和发布)的.aar文件。
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
如果这些文件不存在,则启动生成
gradlew assemble
macOS用户
./gradlew assemble
图书馆计划详情
库项目有一个构建。包含apply plugin: com.android.library的Gradle文件。为了引用打包为.aar文件的这个库,您必须定义一些属性,如package和version。
构建示例。Gradle文件的库(这个例子包括混淆在发布):
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName "0.1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
在项目中引用.aar文件
在你的应用项目中,你可以将这个.aar文件放到libs文件夹中,并更新构建。Gradle文件引用这个库使用下面的例子:
apply plugin: 'com.android.application'
repositories {
mavenCentral()
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
android {
compileSdkVersion 21
buildToolsVersion "21.0.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 20
versionCode 4
versionName "0.4.0"
applicationId "yourdomain.yourpackage"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
}
}
}
dependencies {
compile 'be.hcpl.android.appframework:appframework:0.1.0@aar'
}
在gradle中引用本地依赖文件的其他选项可以在http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project上找到
使用maven共享依赖项
如果您需要在组织中共享这些.aar文件,请查看maven。关于这个主题的文章可以在https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive-library-aar-across上找到
关于.aar文件格式
aar文件只是一个.zip文件,它具有另一种扩展名和特定的内容。有关aar格式的详细信息,请查看此链接。
其他回答
从本地构建中检索导出的.aar文件
如果你有一个模块被定义为一个android库项目,你将在该项目的build/outputs/aar/目录中获得所有构建风格(默认为调试和发布)的.aar文件。
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
如果这些文件不存在,则启动生成
gradlew assemble
macOS用户
./gradlew assemble
图书馆计划详情
库项目有一个构建。包含apply plugin: com.android.library的Gradle文件。为了引用打包为.aar文件的这个库,您必须定义一些属性,如package和version。
构建示例。Gradle文件的库(这个例子包括混淆在发布):
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 21
versionCode 1
versionName "0.1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
在项目中引用.aar文件
在你的应用项目中,你可以将这个.aar文件放到libs文件夹中,并更新构建。Gradle文件引用这个库使用下面的例子:
apply plugin: 'com.android.application'
repositories {
mavenCentral()
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
android {
compileSdkVersion 21
buildToolsVersion "21.0.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 20
versionCode 4
versionName "0.4.0"
applicationId "yourdomain.yourpackage"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
}
}
}
dependencies {
compile 'be.hcpl.android.appframework:appframework:0.1.0@aar'
}
在gradle中引用本地依赖文件的其他选项可以在http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project上找到
使用maven共享依赖项
如果您需要在组织中共享这些.aar文件,请查看maven。关于这个主题的文章可以在https://web.archive.org/web/20141002122437/http://blog.glassdiary.com/post/67134169807/how-to-share-android-archive-library-aar-across上找到
关于.aar文件格式
aar文件只是一个.zip文件,它具有另一种扩展名和特定的内容。有关aar格式的详细信息,请查看此链接。
如果你的库被设置为Android库(即它使用apply plugin: 'com.android. exe . exe)。的语句。Gradle文件),它将在构建时输出一个.aar。它将显示在模块目录中的build/outputs/aar/目录中。
你可以在File > New Module中选择“Android Library”类型来创建一个新的Android Library。
如果您仍然看不到aar文件,请选择Build > Rebuild Project。
[JAR vs AAR]
.jar由apply plugin: 'java-library'生成
.aar是由apply plugin: 'com.android.library'生成的
File -> New -> New Module... -> Android Library
创建AAR
在创建时遵循以下步骤。
文件->新建->新建模块->Android库并创建。
生成AAR
按照以下步骤在android studio的右上方窗格转到gradle。
Gradle->下拉库名称->任务->构建->组装或组装释放
AAR将在build/outputs/ AAR /中生成
但如果我们想要在项目目录中的特定文件夹中生成AAR,请修改您的应用程序级别构建。Gradle如下所示
defaultConfig {
minSdkVersion 26
targetSdkVersion 28
versionCode System.getenv("BUILD_NUMBER") as Integer ?: 1
versionName "0.0.${versionCode}"
libraryVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "/../../../../release/" + ("your_recommended_name.aar")
}
}
}
现在它将在项目目录中创建名为“release”的文件夹,该目录将具有AAR。
更新后的答案
在最新版本中不支持特定路径。请在库的构建中添加以下代码。Gradle和重建项目。重建“aar”后,将项目结构从Android更改为项目->导航到您的库->build->outputs->aar
android {
defaultConfig {
minSdkVersion ..
targetSdkVersion ..
versionCode ...
versionName "1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro'
}
libraryVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "${archivesBaseName}_${variant.name}_${defaultConfig.versionName}.aar"
}
}}
要将“aar”导入项目,请检查下面的链接。
如何手动包括外部aar包使用Gradle为Android
顺便说一句,@aar没有传递依赖。你需要一个参数来打开它: 使用gradle无法解析aar库的传递依赖项