在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库