我想在Android Studio中为我的库创建一个aar文件,我想使用jar选项,但我的库有资源。
你知道如何从库中创建aar文件吗?
发布于 2014-12-19 19:23:42
从本地生成中检索导出的.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
的build.gradle
文件。为了引用这个打包成.aar
文件的库,您必须定义一些属性,比如包和版本。
库的示例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文件
在您的应用程序项目中,您可以将此.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
使用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
。有关详细信息,请查看this link about the aar format。
发布于 2015-11-13 03:39:52
就像用户hcpl所说的,但是如果你不想担心库的版本,你可以这样做:
dependencies {
compile(name:'mylibrary', ext:'aar')
}
因为每次都要更新版本是一件很烦人的事情。此外,它还使得不用担心名称空间的问题变得更容易。
发布于 2016-10-17 02:58:23
btw @aar没有传递依赖。您需要一个参数来打开它:Transitive dependencies not resolved for aar library using gradle
https://stackoverflow.com/questions/24309950
复制相似问题