当前位置:   article > 正文

Androidstudio编译jar和aar

Androidstudio编译jar和aar

在Android项目中经常会需要导入一些第三方的jar文件或者aar文件, 同时我们也会有把我们自己项目编译成jar或者aar文件提供给其他人使用。在Android studio(后文简写as)不同2.0和3.0版本中生成的文件存储路径也有些不同。做一个记录,以防再入坑。


1.首先简单介绍aar和jar文件:
jar:只包含class文件与清单文件,不包含资源文件,如图片等所有res中的文件。

aar:包含所有资源,class以及res资源文件全部包含。

如果你是一个简单的类库那么使用生成的jar文件即可(虽然也可以生成aar文件,但是没有必要);如果你是一个UI库,包含一些自己写的控件布局文件以及字体的资源文件那么就只能使用aar文件。

注意:
1.要想输出为.aar和.jar需要修改该mudule的配置文件build.gradle为library

     apply plugin: 'com.android.library'
  • 1

如果是编译apk的mudule配置为

     apply plugin: 'com.android.application'
  • 1

2.如果是把普通的工程转化成依赖包,不能配置 applicationId 字段

2.依赖Library文件

  • 该项目是我写的一个demo ,主项目为MyTestDemo , mytestlibrary是一个依赖库mudule.

这里写图片描述

  • MytestDemo中的gradle配置文件(as3.0版本)

这里写图片描述

如上配置时,编译整个项目,由于配置了 implementation project(‘:mytestlibrary’),在主项目中会依赖该Library,可以使用其中的代码。

(在as2.0中只需要将 implementation 改成 compile)

3.生成.jar文件并导入到主项目

  • 编译出.jar文件:
    这里写图片描述

在as右边的gradle图标,点击找到上图library的build目录下的assemable命令,双击,编译该项目,包括debug和release两个版本的classes.jar文件。

生成存放的目录:

(as3.0版本 在新增的packaged-classes下,起初一直疑虑不能生成bundles目录,后来查阅资料发现路径发生变化)
这里写图片描述

(as2.0版本 在bundles目录下)
这里写图片描述

把需要的.jar文件copy到主项目的libs目录下,然后将项目的配置文件做一下修改

 implementation fileTree(dir: 'libs', include: ['*.jar'])

 //implementation project(':mytestlibrary') 不再应用这个library名,而是依赖对应的classes.jar文件
 //不能两个都依赖,因为其实是同一份代码的不同形式,重复依赖会提示编译错误。
 implementation files('libs/classes.jar')
  • 1
  • 2
  • 3
  • 4
  • 5

3.生成.aar文件并导入到主项目
如果项目包含资源文件被使用,需要导出aar文件才能正常被依赖使用。在上面的生成jar文件的时候其实已经生成了aar文件,只是存放的路径不同 (如下图在as2.0和3.0中 aar文件的存储路径没有修改,都在build -> outputs->aar目录下)。

这里写图片描述

同样把aar文件copy到项目的libs目录下,因为我用的是同一个library生成的jar和aar,所以需要删除前面的jar文件。
主项目的配置文件也需要修改一下:

 //implementation project(':mytestlibrary')
//implementation files('libs/classes.jar') 依赖aar包
implementation(name:'mytestlibrary-debug', ext: 'aar')
  • 1
  • 2
  • 3

而且需要加上下面的配置。

repositories {
    flatDir {
        dirs 'libs'
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5

这样就可以使用aar包中的代码了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/331573
推荐阅读
相关标签
  

闽ICP备14008679号