我想在Android Studio中为我的库创建一个aar文件,我会选择jar选项,但是我的库有资源。
任何想法如何从库中创建aar文件?
我想在Android Studio中为我的库创建一个aar文件,我会选择jar选项,但是我的库有资源。
任何想法如何从库中创建aar文件?
Answers:
如果您的库设置为Android库(即,它使用apply plugin: 'com.android.library'
build.gradle文件中的语句),则在构建时会输出.aar。它将显示在模块目录的build / outputs / aar /目录中。
您可以在“文件”>“新模块”中选择“ Android库”类型,以创建新的Android库。
aar
,我必须Build > Rebuild Project
在Android Studio中执行。简单地运行,调试或构建APK并不会aar
为我生成。
./gradlew moduleName:assembleRelease
在终端选项卡中
如果您将模块定义为android库项目,则将在该build/outputs/aar/
项目的目录中获取所有构建版本(默认情况下为调试和发布)的.aar文件。
your-library-project
|- build
|- outputs
|- aar
|- appframework-debug.aar
- appframework-release.aar
如果这些文件不存在,则使用
gradlew assemble
对于macOS用户
./gradlew assemble
一个库项目有一个build.gradle
包含的文件apply plugin: com.android.library
。为了参考打包成.aar
文件的库,您必须定义一些属性,例如package和version。
build.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
文件拖放到文件libs
夹中并更新该build.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
如果您需要.aar
在组织内共享这些文件,请查看maven。可以在以下网址找到有关此主题的出色文章:https : //web.archive.org/web/20141002122437/http : //blog.glassdiary.com/post/67134169807/how-to-share-android-archive-跨图书馆
aar文件只是.zip
带有替代扩展名和特定内容的。有关详细信息,请查看有关aar格式的此链接。
gradlew assemble
解决了我遇到的问题。
gradlew
是项目顶层目录中的脚本。
创建AAR
创建时请遵循以下步骤。
File->New->New Module->Android Library and create
。
生成AAR
请按照以下步骤转到android studio右上方窗格中的gradle。
Gradle->Drop down library name -> tasks-> build-> assemble or assemble release
AAR将在build / outputs / aar /中生成
但是,如果我们希望以所需的名称在项目目录中的特定文件夹中生成AAR,请按build.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")
}
}
}
现在它将在具有AAR的项目目录中创建名称为“ release”的文件夹。
btw @aar没有传递依赖。您需要一个参数将其打开: 无法使用gradle为aar库解析可传递依赖项