Android Studio使用Gradle引入第三方库文件
原文链接:https://blog.csdn.net/qiutiandepaomo/article/details/81538937
使用AndroidStudio开发Android应用的时候,会经常需要借助Gradle引入各式各样的第三方库文件,帮助我们更好的开发App,常用的引入方式有:Jar包文件、aar文件、Library库文件、so文件、远程jcenter、maven仓库文件。这几种引入方式各有利弊,对应的gradle配置也有所不同。
一、jar文件
将jar文件复制到项目的app module目录下的lib文件夹下,然后打开app module目录下的build.gradle文件,在dependencies依赖项中添加配置命令,有两种配置方式:
1、一次性引入libs目录下所有的jar文件
implementation fileTree(include: ['*.jar'], dir: 'libs')
2、单个逐一引入jar文件
implementation files('libs/core-3.3.0.jar')
上边介绍的只是针对将jar包导入的工程里面的情况,如果调用的是远程服务器的jar包,只需要设置导入的jar包的地址和版本即可。格式为implementation 'name:version':
implementation "com.jakewharton:butterknife:8.8.1"
二、aar文件
aar文件其实也是压缩文件,相比jar文件,它能够带有res等资源文件,aar文件的引入方式有两种:
1、Module形式引入
选择File菜单,或者打开Project Structure界面,添加新的Module(New Module...),选择import .JAR/.AAR Package,选择目标aar文件导入,导入之后,在项目根目录下会自动生成一个新的文件夹放置aar文件及其配置文件。如:
然后打开app module目录下的build.gradle配置文件,在dependencies依赖项中添加配置:
implementation project(':ace-release')
需要注意的是:这种引入方式无法查看aar文件中的代码和资源等文件。
2、libs目录中引入
将aar文件复制到app module目录的libs文件夹中,然后打开app module目录下的build.gradle配置文件,在android项中添加依赖:
-
repositories {
-
flatDir {
-
dirs 'libs'
-
}
-
}
然后在dependencies一栏中添加:
implementation(name:'ace-release',ext: 'aar')
对应完整的app module目录下的build.gradle配置文件是:
上边两种方式也是针对于aar包放到工程中的情况,对于调用远程服务器端的aar包,同远程jar包。
三、Library库文件
将第三方Library库文件复制到项目的根目录下,或者通过File-New-import Module...方式将第三方Library库文件引入到项目的根目录下,打开项目根目录下的settings.gradle文件,添加配置命令,如:
include ':app', ':zbarlibary'
然后打开app module目录下的build.gradle,添加配置命令,如:
implementation project(':zbarlibary')
推荐在项目根目录下心间一个文件夹,如extras文件夹,将所有的Library库文件都复制到该文件下,方便统一浏览管理,这样上面两步对应的配置命令将变成:
include ':app', ':extras:zbarlibary'
implementation project(':extras:zbarlibary')
四、so文件
新版gradle实现了自动打包编译so文件的功能,并且为so文件指定了默认的目录app/src/main/jniLibs,默认的是没有这个文件夹的,需要我们自己新建一个jniLibs文件夹,并将so文件复制到该文件夹下,编译运行即可。
五、jcenter、maven仓库文件
在项目根目录的build.gradle文件中添加仓库,如:
然后在各个Module的build.gradle配置文件的dependencies项中添加依赖,如:
Android Studio使用Gradle引入第三方库文件的更多相关文章
- 【Android 应用开发】 Android 各种版本简介 ( Support 支持库版本 | Android Studio 版本 | Gradle 版本 | jcenter 库版本 )
初学者遇到 Android Studio, 导入工程后, 会出现各种奇葩错误, 如果管理好各个插件, gradle, SDK, SDK Tools, 各种官方依赖库 的版本, 会将错误大大的减少; 这 ...
- Android Studio使用Gradle引入包
方法一 jar包直接复制到lib中右击add as library,等自动构建完成后,打开build.gradle会发现dependencies中多了一个compile file('libs/***. ...
- iOS-启动项目(二)引入第三方库
摘要 项目中很大几率会用到第三方库,通过 Pod 方式引入第三方库是效率很高的方式,这里介绍一个新的项目搭建 Pod 方式的环境,方便项目中引入第三方库文件. 刚创建的项目中如果需要用到第三方库,常用 ...
- Android studio中正确引入so文件的方法
相信很多朋友在使用Android studio开发中,遇到过如何引入第三方so文件的问题,然而第三方官方仅仅给出了ADT环境下的集成方式. Android studio中默认使用的是gradle编译方 ...
- Android Studio :Android Studio 与 Gradle 深入【二】
转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=255063&extra=page%3D2%26filter%3Dautho ...
- 快速掌握 Android Studio 中 Gradle 的使用方法
快速掌握 Android Studio 中 Gradle 的使用方法 Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build ...
- Android studio中找不到so文件的问题:java.lang.UnsatisfiedLinkError
解决Android studio中找不到so文件的问题:java.lang.UnsatisfiedLinkError 表示我们不编译jni代码,直接从libs里面复制so库 文件路径:app\buil ...
- Android studio的gradle
1. gradle的基本概念 gradle构建* Android Studio使用`Gradle`构建工具,Eclipse的ADT插件使用的是`Ant`构建工具* 构建:生成app的过程,执行一些的命 ...
- Android studio下gradle Robolectric单元测试配置
android studio下gradle Robolectric单元测试配置 1.Robolectric Robolectric是一个基于junit之上的单元测试框架.它并不依赖于Android提供 ...
随机推荐
- mybaties longtext 类型不能映射到自动生成的文件
假设数据库里有 fun_detail 这样一个字段. 使用 MyBatis Generator 生成的 XXExample 文件,发现没有 fun_detail 这个字段. 需要加一行: <co ...
- macos python安装mysqlapi集合
记录一下,接了一个python2 django1.x的项目,很老了导致很多扩展无法安装 os version:macos catalina python version: 2.7.18 而django ...
- 【转载】一次「Too many open files」故障
一次「Too many open files」故障 发表于2015-08-02 昨天,项目的 ElasticSearch 服务挂了,我说的挂可不是进程没了,因为有 Supervisor 保护,而是服务 ...
- K8S的资源管理
K8S的资源管理 管理K8S资源的三种基本方法: 陈述式资源管理方法-使用cli工具进行管理. 声明式资源管理方式-主要依耐资源配置清单. GUI式资源管理方法-主要依耐图形界面. 陈述式资源管理方法 ...
- groovy脚本语言基础1
一 搭建groovy环境 安装JDK [root@node1 ~]# yum -y install java-11-openjdk 官网下载groovySDK下载 https://groovy.ap ...
- 014.Python函数
一 函数的概念 1.1 函数的含义 功能 (包裹一部分代码 实现某一个功能 达成某一个目的) 1.2 函数特点 可以反复调用,提高代码的复用性,提高开发效率,便于维护管理 1.3 函数的基本格式 # ...
- shell应用之监测电脑内存、负载和磁盘的使用情况
1 #!/bin/bash 2 for i in $(cat ip.txt);do 3 #内存 4 total_memo=$(ssh $i "free -m" |grep Mem ...
- lvscan 查看系统中存在的所有LVM逻辑卷
相关命令:lvresize,lvreduce,lvextend,lvdisplay,lvcreate,lvremove lvscan指令:扫描逻辑卷[语 法]lvscan [选项][功能介绍]l ...
- STM32自己的封装库
以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程. 这个编译过程是一个相当慢的过程!完全编译大约需要一支烟的时间.每次建立工程都这么编译,是一个相当浪费时 ...
- Synchronize 和 volatile 的区别
1. 在应用层面来讲 a. volatile是线程同步的轻量级实现,所以volatile的性能要比synchronize好: volatile只能用于修饰变量,synchronize可以用于修饰方法. ...