android 如何使用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

复制代码

代码如下:

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

com.lee.study.android

NiMa

aar

NiMa

UTF-8

4.1.1.4

3.8.0

com.google.android

android

${platform.version}

provided

${project.artifactId}

com.jayway.maven.plugins.android.generation2

android-maven-plugin

${android.plugin.version}

true

com.jayway.maven.plugins.android.generation2

android-maven-plugin

16

E:/android_work/sdk/

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

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

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

e85137c4c1bef773b110c0bbb8be7787.png

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"

}

repositories 添加了 flatDir , dependencies 里面添加了 依赖的aar文件。

如果你做到这一步,重新编译一下依赖就添加好了,我目前的版本添加完了aar访问aar中的资源文件是不成问题的,但是不能访问到aar中的类文件。如果你和我一样不幸的话,请看下一步

2 手动的添加class.jar文件到android -studio,选中项目F4 ,手动添加依赖 jar到项目,看图片

95d6d62404da90a838722165377f7220.png

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

4710494f065d443d238f0cc8d7351820.png

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

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

https://code.google.com/p/maven-android-plugin/

http://stand.spree.de/wiki_details_maven_archetypes

http://javacan.tistory.com/198

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第二百七十九节,MySQL数据库-pymysql模块操作数据库

MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式:   模块名称.connect()   参数:   host数据库ip   port数据库端口   user数据库用户名   pa…

宇航员能用GPS在月球上导航吗?美国宇航局的科学家给出了肯定答案

Illustration: NASA来源:IEEE电气电子工程师如果宇航员按照美国宇航局Artemis计划登录月球,他们的主要目标之一就是在月球南极附近的陨石坑中挖冰,这些冰层不仅对水有用,而且可以分解成氢和氧。但它们需要导航,才能精确…

android getdecorview 出现空指针,android – 为什么我从TabWidget得到一个空指针异常?...

我正在编写一个android程序,其中我有一个使用制表符的活动.活动public class UnitActivity extends TabActivity {Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TabHost tabHost getTabHost();TabSpec spec;Resources res …

react多个网络请求_如何优雅的在react-hook中进行网络请求

本文将介绍如何在使用React Hook进行网络请求及注意事项。前言Hook是在React 16.8.0版本中新加入的特性,同时在React-Native的0.59.0版本及以上进行了支持,使用hook可以不用class的方式的方式使用state,及类似的生命周期特性。本片文章通过简…

JS之代理模式

1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <title>Document</title>6 </head>7 <body>8 <script>9 //1,买家 10 function maijia (argument) …

猴子会照镜子吗?科学家的这一研究意义非凡!

来源&#xff1a;中国经济大讲堂本期提要在《中国经济大讲堂》演讲中&#xff0c;中国科学院院士、中科院脑科学与智能技术卓越创新中心学术主任蒲慕明指出&#xff0c;自闭症患者、严重脑疾病可能伴有自我意识损伤的现象。我们通过各种训练方法&#xff0c;可以使猴子学会识别…

博客开篇。

【README.MD】: this is a blog for 13203361793163.com. just about HTML 、Css 、 JavaScript and a little PHP. Practice is most important to learn and master all knowledge, only in this way , can we make our career better and better . 转载于:https://www.cnbl…

Science | 闵明玮等揭示细胞如何做出命运决定

来源&#xff1a;BioArt细胞命运决定我们体内的每个细胞都会面临着一个关乎命运的选择&#xff1a;要不要复制产生一个新的细胞。这个重大选择关系到人体发育和维持稳态等生理过程&#xff0c;因此它的失调也与癌症等疾病的发生发展有着密切联系。在人体中&#xff0c;大部分的…

itext html 转换 pdf文件,利用itext实现html转pdf文档

Link: http://keyknight.blog.163.com/blog/static/366378402009431104941637/利用itext实现html转pdf文档的代码实在是太简单了&#xff1a;Document pdf new Document(PageSize.A4, 50, 50, 50, 50);try {PdfWriter.getInstance(pdf, new FileOutputStream("d:/t.pdf&q…

图解机器学习:人人都能懂的算法原理

来源&#xff1a;机器学习研究组订阅号算法公式挺费神&#xff0c;机器学习太伤人。任何一个刚入门机器学习的人都会被复杂的公式和晦涩难懂的术语吓到。但其实&#xff0c;如果有通俗易懂的图解&#xff0c;理解机器学习的原理就会非常容易。本文整理了一篇博客文章的内容&…

python gil锁问题_Python的GIL与线程安全问题?[closed]

由于一些历史原因&#xff0c;CPython的GIL使得Python同一个时刻只能有一个线程在运行&#xff0c;这使得线程只能用于IO型任务&#xff0c;虽然异步更胜一筹。但是既然同一个时刻只能有一个线程运行那为什么还会有线程安全&#xff0c;线程非安全之类的概念。threading模块提供…

html5页面主题,HTML5页面开发笔记

页面由设计决定, 所以首先聊聊设计稿前戏, 页面设计规范PSD设计稿的图层 "分组" 以及图层 "命名":设计稿中的每一个元素, 比如 唱片机, 设计师需要将所有属于唱片机的图层全部打到一个图层组里, 并且命名这个图层组为唱片机.这样开发人员可以快速的去单独导…

AC日记——Mato的文件管理 bzoj 3289

3289 思路&#xff1a; 莫队求区间逆序对个数&#xff0c;树状数组维护&#xff1b; 代码&#xff1a; #include <bits/stdc.h> using namespace std; #define maxn 50005 int bel[maxn],blo; struct QueryType {int l,r,id;bool operator<(const QueryType pos)const…

Python 什么时候会被取代?

来源&#xff1a;CSDN译者 | 弯月&#xff0c;责编 | 郭芮以下是译文&#xff1a; Python经过了几十年的努力才得到了编程社区的赏识。自2010年以来&#xff0c;Python得到了蓬勃发展&#xff0c;并最终超越了C、C#、Java和JavaScript。但是&#xff0c;这种趋势将持续到什么时…

java负数右移_Java中的按位右移运算符 - Break易站

在C / C 中&#xff0c;只有一个右移运算符>>&#xff0c;它只能用于正整数或无符号整数。在C / C 中不推荐使用右移运算符来表示负数&#xff0c;当用于负数时&#xff0c;输出依赖于编译器。与C 不同&#xff0c;Java支持以下两个右移操作符。Java中的按位右移运算符1)…

Android开发艺术探究Note

第一章&#xff1a;Activity的生命周期和启动模式 生命周期onPause表示activity正在停止&#xff0c;onPaus必须先执行完&#xff08;栈顶的activity&#xff09;&#xff0c;新的activity的onResume才会执行。onStop表示activity即将停止&#xff08;透明不会执行&#xff09;…

html设置焦点图片,HTML设置焦点

**插件简介**这是一款很有特点的HTML5图片切换焦点图动画&#xff0c;点击左右按钮即可将图片进行弹性切换&#xff0c;图片在被切换时&#xff0c;都会左右晃动几下&#xff0c;产生一定的弹性缓冲动画效果。[contenteditable]:focus{outline: none;}如果input失去焦点时,有进…

烧脑:宇宙时空结构是量子纠错码

来源&#xff1a;Future远见现在越来越多的理论物理学家开始相信&#xff0c;时空起源于纠缠的量子信息。粗略地讲&#xff0c;时空中最重要的“相邻”概念&#xff0c;可以认为是起源于量子纠缠&#xff1a;有纠缠就是相邻&#xff0c;没有纠缠就是不相邻。如果你相信这一观念…

dataframe 取2列_DataFrame通过两列进行分组,并获取另一列的计数

新手程序员在这里寻求帮助。我有一个看起来像这样的数据框&#xff1a;Cashtag Date Message0 $AAPL 2018-01-01 "Blah blah $AAPL"1 $AAPL 2018-01-05 "Blah blah $AAPL"2 $AAPL 2019-01-08 "Blah blah $AAPL"3 $AAPL 2019-02-09 "Blah bl…

解决黑苹果的887驱动问题

使用audio_cloverALC工具&#xff0c;下载地址https://github.com/toleda/audio_CloverALC/blob/master/audio_cloverALC-120.command.zip。 首先需要挂载efi分区 1 promote:~ asher$ diskutil list2 /dev/disk0 (internal, physical):3 #: TYPE NAME…