在Android Studio中创buildaar文件

我想在Android Studio中为我的库创build一个aar文件,我会用一个jar选项,但是我的库有资源。

任何想法如何从图书馆创buildaar文件?

如果你的库被设置为一个Android库(即它在build.gradle文件中使用了apply plugin: 'com.android.library'语句),那么它将在构build时输出.aar。 它将显示在你的模块目录下的build / outputs / aar /目录中。

您可以在“文件”>“新build模块”中select“Android库”types来创build一个新的Android库。

从本地构build中检索导出的.aar文件

如果你有一个定义为android库项目的模块,你会在该项目的build/outputs/aar/目录中得到所有构build版本的.aar文件(默认为debug和release)。

 your-library-project |- build |- outputs |- aar |- appframework-debug.aar - appframework-release.aar 

如果这些文件不存在,请使用

 gradlew assemble 

图书馆项目细节

一个库项目有一个build.gradle文件,其中包含了apply plugin: com.android.library 。 为了引用这个打包成.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中引用本地依赖文件的其他选项可在以下位置find: 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-库AAR-跨越

.aar文件格式

aar文件只是一个带有替代扩展名和特定内容的.zip文件。 有关详细信息,请查看关于aar格式的链接 。

就像用户hcpl说,但如果你不想担心图书馆的版本,你可以这样做:

 dependencies { compile(name:'mylibrary', ext:'aar') } 

作为一种烦人的不得不每次更新版本。 而且这样也使得不用担心名字空间的问题。

顺便说一句@aar没有传递依赖。 你需要一个参数来打开它: 传递依赖没有解决使用gradle的aar库