导航:首页 > 操作系统 > android生成aar

android生成aar

发布时间:2022-12-14 17:05:26

android Studio中编译aar release版本简便方法

在Android Studio中编译aar时,通常Build之后是Debug版本。
有网友提出添加了Release选项也无济于事:

其实,在控制台中输入gradlew assembleRelease指令即可生成,如下图所示,Mac上,AS的Terminal中生成aar Release包。

❷ android 怎样将mole打包成aar

1.aar包是Android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件
2.生成aar包步骤:
①.用android studio打开一个工程,然后新建一个Mole,新建Mole时候选择Android Library,后面按新建普通工程操作

②.新建Mole 类型为android Library 后如下图所示

③.在新建的Mole中编写完代码后,接下来编译整个工程后就会自动生成aar包,包的路径在新建的Mole ==》 build ===》outputs ==>aar目录下。 如图

3.其他androidstudio工程引用aar包
①.将aar包复制到lib目录下
②.配置build.gradle文件:
加入
repositories {
flatDir {
dirs 'libs'
}
compile(name:'camerascan-1.0', ext:'aar')

完整的配置文件:

[java] view plain
apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
applicationId "com.geenk.testcamerascanarr"
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
repositories {
flatDir {
dirs 'libs'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name:'camerascan-1.0', ext:'aar')
compile 'com.android.support:appcompat-v7:22.2.0'
}

❸ 如何创建Android库以及Android aar文件详解

创建 Android 库

Android 库在结构上与 Android 应用模块相同。它可以提供构建应用所需的一切内容,包括源代码、资源文件和 Android 清单。不过,Android 库将编译到您可以用作 Android 应用模块依赖项的 Android 归档 (AAR:Android Archive Resource) 文件,而不是在设备上运行的 APK。与 JAR 文件不同,AAR 文件可以包含 Android 资源和一个清单文件,这样,除了 Java 类与方法外,您还可以捆绑布局和可绘制对象等共享资源。

库模块在以下情况下非常有用:

❹ uniapp安卓aar插件问题

Android插件在application中初始化了很多东西,如果生成aar包提供给前端,让前端进行云打包,那么Android在application中所初始化的东西将会失效,因为云打包,我们无法控制让他加载我们的application。Android插件依赖了很多第三方的aar包,如果把插件打成aar包,那么插件依赖的第三方aar包将无法和插件打包成一个aar文件,就会导致插件中很多类和文件找不到uniapp前端配置文件中可以依赖于maven仓库,但是uniapp的maven仅限于jcenter和aliyun名下的才能引用。

❺ android studio aar怎么用

一. 简介

aar是一个类似于jar的文件格式。但是他们之间是有区别的。
jar:仅仅包含class和清单文件,没有资源文件。
aar:包含了class文件和资源文件。说白了就是Android的专属“jar”

将代码打包成aar文件,可以在一定程度上加快AndroidStudio的速度。
尤其是将Mole打包成aar文件,提升的效果很显着。

二. 如何得到aar

1. Mole的aar文件

将一个AndroidStudio项目中的Mole打包成aar其实很简单。
在每一个Mole的目录下面都会有这样一个文件夹:build\outputs\aar。
这个文件夹下面就放着这个Mole对应的aar文件。
一般情况下会有两个aar文件,一个debug版本,一个release版本。
我们选择release的就ok。
注意:
新建的Mole是没有这个文件夹的。这时,你可以使用 两种方法 生成这个文件夹

将整个项目运行一遍,这个文件夹会自动生成
执行命令 ./gradlew assembleRelease 也可以生成这个文件夹
Mole中的libs目录文件会随着项目的编译被打包进aar文件中,但是build.gradle中的引用库不会打包进aar文件中,这个需要 特别留意。如果你忽略了这个Mole的build.gradle中的引用库,很可能引发ClassNotFoundException异常。
2. 远程仓库的aar

在项目里面经常会引用一下远程仓库的依赖库。
这时,我们也可以将它以aar的形式引入到项目中。
这个依赖库的aar其实也很好找。
当你配置好一个依赖库以后,点击 Sync Now 。
AndroidStudio会自动下载这个库到C盘(windows)。你找到这个文件就可以了。
这里我使用的是Everything进行搜索,很方便就找到这个库的下载文件夹。其他操作系统就自行搜索吧,总之找见这个项目的下载文件夹就ok。
这个下载文件夹中包含了这个项目所需要的所有东西:包括aar、jar等文件。

后面会以一个例子详细讲解这个过程

注:
Everything是一个搜索软件,可以瞬间搜索全盘。
是一个非常实用的软件。但是很可惜只有windows版本。
官网地址:<a href="<a href="https://www.voidtools.com/" target="_blank">https://www.voidtools.com/</a>" target="_blank"><a href="https://www.voidtools.com/" target="_blank">https://www.voidtools.com/</a></a>
三. 如何使用aar

想要使用aar文件,需要经过以下几步:

1. 在app的build.gradle中加入以下配置

repositories {
flatDir {
dirs 'libs' // aar目录
}
}
2. 将aar文件拷贝到app/libs目录下

3. 在dependencies中加入aar引用

compile(name: 'zbar-release', ext: 'aar')
四. LeakCanary项目示例

因为Mole的例子比较简单,所以选择远程代码库作为示例。
这里使用一个经常使用的内存检测项目LeakCanary来做一个示例。
我们通常使用依赖来使用这个库:

debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
当Sync Now完成后,我们可以在C盘(windows)找见这个项目文件夹。

这个文件夹下面就有我们需要的两个依赖库:leakcanary-android和leakcanary-android-no-op
点开leakcanary-android文件夹,目录结构如下(1.3是对应的版本号):

leakcanary-android文件夹
打开最里层的文件夹,你会发现文件的类型主要有三种:

jar文件:有的项目是以jar文件形式提供
aar文件:有的项目是以aar文件形式提供
pom文件: (Project Object Model),实际上就是个xml,是对一些必要信息的说明。这里我们只关心一个节点信息:<dependencies>:声明依赖列表
我们用文本编辑器打开leakcanary-android文件夹下面的pom文件:
...
<dependencies>
<dependency>
<!--包组 id,通常是发布者拥有的域名的反向,以免跟别人的重复-->
<groupId>com.squareup.leakcanary</groupId>
<!--包 artifactId,其实就是组以下应该有一个更小的归类-->
<artifactId>leakcanary-analyzer</artifactId>
<!--版本号-->
<version>1.3</version>
<scope>compile</scope>
</dependency>
</dependencies>
..
当我们打开leakcanary-android的pom文件,
我们发现leakcanary-android依赖于leakcanary-analyzer的1.3版本。

同样的的我们打开leakcanary-analyzer 的pom文件,
发现leakcanary-analyzer依赖leakcanary-watcher和haha。

leakcanary-watcher和haha则没有依赖任何东西。

这样整个leakcanary-android导入本地的东西就是四个:

leakcanary-android
leakcanary-analyzer
leakcanary-watcher
haha
同样的方式去一层一层解析leakcanary-android-no-op,将所有需要的文件都导入到AndroidStudio中。这样整个LeakCanary就被我们真正实现本地化了。

debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
debugCompile(name: 'leakcanary-android-1.3', ext: 'aar')
compile files('libs/leakcanary-analyzer-1.3.jar')
compile files('libs/leakcanary-watcher-1.3.jar')
compile files('libs/haha-1.1.jar')
releaseCompile(name: 'leakcanary-android-no-op-1.3', ext: 'aar')
这样就将整个LeakCanary项目完全转换成了本地的依赖。

❻ 如何将android studio整个工程编译成aar

要输出aar文件,必须将Mole配置为library,在gradle文件中如下:输出aar:applyplugin:'com.android.library';输出apk:applyplugin:'com.android.application'。将Mole配置为library后,构建输出一个aar文件,根据渠道和BuildType的不同,在相应的目录下可以找到。比如对BuildType为debug的配置,输出为:[MoleName]/build/outputs/aar/[MoleName]-debug.aar。一份aar文件其实就是一份zip包,和jar不同的是,它将一些资源文件、第三方库文件、so文件等等都打包在内,而代码文件编译后压缩在在classes.jar中。比如:3、导入aar的方式引用这种方式比较简单,打开ProjectStructure,添加一个新Mole,然后选择Import*.JARor*.AARPackage的方式导入:导入后,在你的工程下面,会生成一个文件夹,里面是aar文件以及AndroidStudio的配置文件。接着可以在gradle中配置依赖了,其他Mole可以引用这个Mole了,依赖方式使用compileproject的方式即可。缺点:被依赖的aar无法F3跟进去,无法看到资源文件内容以及目录层级等等缺陷。4、使用配置依赖的方式引用gradle其实还有另一种依赖可以引用aar:compile(name:'xxx',ext:'aar')。首先需要将aar文件放入引用Mole的libs目录下,和一般的jar文件类似。然后在gradle配置文件中把libs目录加入依赖:?12345repositories{flatDir{dirs'libs'}}接着在gradle的依赖配置中加入compile(name:'xxx',ext:'aar')这一句,依赖即可关联完毕。构建一下工程,在Mole的build/intermediates/exploded-aar目录下,可以看到有一些临时文件生成:看起来完全是引用aar的解压版本。AndroidStudio安装反编译插件后,可以通过F3跟进到class文件里面,如果你有被依赖Mole的源代码的话,还可以AttachSource关联源代码查看。另外,可以很方便的查看aar中的资源文件。另外,这种依赖方式更新aar后,生成的临时文件也会随之变动,不用担心改动不同步的问题。

❼ Android Studio如何使用aar依赖包

ps:2013-12-25 号更新,升级到0.4以后 这种方法已经完美使用!

因为项目里面要用到actionbarsherlock,所以研究了一下如何导入到android studio中。
arr(Android Archive):名字是谷歌到的,至于中文叫什么我也不知道。不过好像依赖都要使用这样的包了。
首先说明我使用的android studio 版本是3.1.因为现在android studio的bug还不较多,所以你的版本能不能正常使用我就不敢说了。
如果你只是单纯的想使用actionbarsherlock的话,引用是十分简单的

复制代码

代码如下:

dependencies {
// compile fileTree(dir: 'libs', include: '*.aar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:18.0.+'
}

然后重新编译一下项目就行了。(ps 这两天看见群里面都在讨论引用第三方jar包,请看我的第一行注释,你只要新建一个libs的文件夹,然后把想要jar包复制到文件夹下,接着把注释那句复制到build文件中,修改一下(*.aar -> *.jar)就可以了)

但是我们要是使用本地的aar文件,我谷歌了两天总算是勉强能用了,请看我的实现过程,如果你有更好的请转告小弟共同进步

第一步 :生成aar文件

我的方法是通过maven-android-plugin来生成的,如果你使用过actionbarsherlock以前的版本的话,这个工具应该不陌生,如果你连maven 都不知道的话,建议好好学习一下maven,虽然现在gradle很火 ,但是我还是最喜欢maven。

关于具体生成步骤不久不详细说了,文章最后贴出几个网址供大家学习使用,放心我按顺序给你们,只要一步一步的来绝对能成功

1、把你的maven版本提升到3.1.1
2、去github上clone下来 maven-android-sdk-deployer 这个项目https://github.com/mosabua/maven-android-sdk-deployer,按照使用说明安装android的版本
3、通过maven-android-plugin生成一个android项目

复制代码

代码如下:

mvn archetype:generate /
-DarchetypeArtifactId=android-quickstart /
-DarchetypeGroupId=de.akquinet.android.archetypes /
-DarchetypeVersion=1.0.11 /
-DgroupId=your.company /
-DartifactId=my-android-application

4 修改pom

复制代码

代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lee.study.android</groupId>
<artifactId>NiMa</artifactId>
<packaging>aar</packaging>
<name>NiMa</name></p><p> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<platform.version> 4.1.1.4
</platform.version>
<android.plugin.version>3.8.0</android.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android.plugin.version}</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<sdk>
<platform>16</platform>
<path>E:/android_work/sdk/</path>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>

这是我的pom,打包类型改成aar,插件改成3.8版本,添加ANDROID_HOME到path。

5 执行 mvn install ,这样我们就得到了aar文件,和aar-class.jar文件,其实aar文件里面包含class.jar文件,但是我目前的版本必须手动导入到android studio中,这就是不完美之处。

第二步 导入到android studio中 创建libs文件夹,放入想要导入的文件

1 修改build.gradle ,依然是给出我的大家可以按照自己的项目对比修改

复制代码

代码如下:

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'</p><p>repositories {
mavenLocal()
mavenCentral()
flatDir {
dirs 'libs'
}
}
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"</p><p> defaultConfig {
minSdkVersion 7
targetSdkVersion 18
}
}
dependencies {
// compile fileTree(dir: 'libs', include: '*.aar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.jayway.maven.plugins.android.generation2.samples.libraryprojects:aar-lib1:1.0.0@aar'
//compile 'com.lee.study.android:NiMa:0.0.1@aar'
compile 'com.android.support:support-v4:18.0.+'
}
android {
compileOptions.encoding = "UTF-8"
}

repositories 添加了 flatDir , dependencies 里面添加了 依赖的aar文件。
如果你做到这一步,重新编译一下依赖就添加好了,我目前的版本添加完了aar访问aar中的资源文件是不成问题的,但是不能访问到aar中的类文件。如果你和我一样不幸的话,请看下一步
2 手动的添加class.jar文件到android -studio,选中项目F4 ,手动添加依赖 jar到项目,看图片

如果这一步你也搞定了,恭喜你就能和我一样使用依赖了

Toast 显示的内容是依赖包中的一个静态方法返回的文本内容。

最后关于maven 如果搭建android项目的网址,按顺序看就可以

https://code.google.com/p/maven-android-plugin/
http://stand.spree.de/wiki_details_maven_archetypes
http://javacan.tistory.com/198

❽ 如何制作一个android studio的aar依赖包

首先说明咱使用的android studio
版本是0.4.因为现在android studio的bug还不较多,所以版本能不能正常使用就不敢说了。

如果只是单纯的想使用actionbarsherlock的话,引用是十分简单的dependencies {
// compile fileTree(dir: 'libs', include: '*.aar')
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:18.0.+'
}


不过官方也出了一个兼容包,也非常的不错。so 没必要非得要使用actionbarsherlock。

然后重新编译一下项目就行了。(ps
引用第三方jar包,请看第一行注释,只要新建一个libs的文件夹,然后把想要jar包复制到文件夹下,接着把注释那句复制到build文件中,修改一下(*.aar
-> *.jar)就可以了)。

但是要是使用本地的自定义的aar文件,请看实现过程
第一步 :生成aar文件

方法是通过maven-android-plugin来生成的,如果使用过actionbarsherlock以前的版本的话,这个工具应该不陌生,如果连maven
都不知道的话,建议好好学习一下maven,虽然现在gradle很火 ,但是个人还是最喜欢maven。

关于具体生成步骤不久不详细说了,

1 把自己的maven版本提升到3.1.1
2 去github上clone下来
maven-android-sdk-deployer 这个项目
3 通过maven-android-plugin生成一个android项目



mvn archetype:generate \
-DarchetypeArtifactId=android-quickstart \
-DarchetypeGroupId=de.akquinet.android.archetypes \
-DarchetypeVersion=1.0.11 \
-DgroupId=your.company \
-DartifactId=my-android-application


如果不能够编译可能要修改一下pom



<?xml version="1.0" encoding="UTF-8"?>
<modelVersion>4.0.0</modelVersion>
<groupId>com.lee.study.android</groupId>
<artifactId>NiMa</artifactId>
<version>0.0.1</version>
<packaging>aar</packaging>
<name>NiMa</name>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<platform.version> 4.1.1.4
</platform.version>
<android.plugin.version>3.8.0</android.plugin.version>
</properties>

<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>${platform.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android.plugin.version}</version>
<extensions>true</extensions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<sdk>
<platform>16</platform>
<path>E:\android_work\sdk\</path>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>


上面都是个人pom,修改了打包类型和插件版本以及添加了sdk位置。

然后执行打包命令,就可以生成aar文件了,如果是已经有写好的类库的话,可以尝试这修改成maven形式的。

第二步
导入到android studio中 创建libs文件夹,放入想要导入的文件

1 修改build.gradle ,依然是给出可以按照自己的项目对比修改



buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'

repositories {
mavenLocal()
mavenCentral()
flatDir {
dirs 'libs'
}
}

android {
compileSdkVersion 18
buildToolsVersion "18.1.1"

defaultConfig {
minSdkVersion 7
targetSdkVersion 18
}
}

dependencies {
// compile fileTree(dir: 'libs', include: '*.aar') compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.jayway.maven.plugins.android.generation2.samples.libraryprojects:aar-lib1:1.0.0@aar'
//compile 'com.lee.study.android:NiMa:0.0.1@aar' compile 'com.android.support:support-v4:18.0.+'
}
android {
compileOptions.encoding = "UTF-8"
}

❾ Android发布AAR包

最近有需求要发布一套SDK,这套SDK有几个要求:

依照上面的要求我最先想到的就是AAR包了,因为以下几个原因:

打包aar其实很简单,只需要我们创建一个Library工程就可以了。

这个时候编译Library就会在outputs目录下生成一个aar文件夹,里面包含aar文件。

aar也是可以混淆的,方式和apk一样。

引用aar可以有两种方式,一种是本地引用,一种是远端库引用,目前我只用到了本地引用,远端的以后会补上。首先在bulid.gradle文件中定义一个本地库。

然后在依赖引用的地方添加依赖。

name:aar包的名字;ext:扩展名;

打包aar包的时候会自动将lib目录下的jar打包进aar包中。

因为分层的原因,有多个library工程,这样就会有多个aar,发布起来很麻烦,尝试google了半天,发现目前都是一个办法,android-fat-aar,一个gradle脚本,github地址是: https://github.com/adwiv/android-fat-aar 。不过我发现他支持gradle2.2.X之前的版本,新的3.X版本并不能执行。这块还在继续摸索,有知道办法的大神请指教一下~~~~

❿ Android:多aar打包

我使用的是网上这个 https://github.com/kezong/fat-aar-android
这个github库。

具体配置是再跟gradle中添加:
classpath 'com.kezong:fat-aar:1.2.7'

在需要打包的地方添加:
apply plugin: 'com.kezong.fat-aar'

然后添加需要合并的包,可以是远程包,本地aar,本地project。可以说很完整了。
例如:

怎么看远程依赖呢?下面这里就可以看

最后生成的aar包如下,jni和jar包都有了

反编译看看classes.jar看看,本地项目的类都在这里面了。

后面得看看是怎么打包起来的了,不然后续作者不维护了就蛋疼了。

阅读全文

与android生成aar相关的资料

热点内容
长沙好玩的解压项目 浏览:140
专属学情分析报告是什么app 浏览:562
php工程部署 浏览:831
android全屏透明 浏览:730
阿里云服务器已开通怎么办 浏览:801
光遇为什么登录时服务器已满 浏览:300
PDF分析 浏览:482
h3c光纤全工半全工设置命令 浏览:139
公司法pdf下载 浏览:379
linuxmarkdown 浏览:349
华为手机怎么多选文件夹 浏览:681
如何取消命令方块指令 浏览:347
风翼app为什么进不去了 浏览:776
im4java压缩图片 浏览:360
数据查询网站源码 浏览:148
伊克塞尔文档怎么进行加密 浏览:888
app转账是什么 浏览:161
php的基本语法 浏览:792
对外汉语pdf 浏览:518
如何用mamp本地web服务器 浏览:871