Android Studio项目中三种依赖的添加方式
通常一个AS项目中的依赖关系有三种,一是本地依赖(主要是对本地的jar包),二是模块依赖,三是远程依赖;添加这些依赖的目的在于上我们想要在项目的某一个模块中使用其中的功能,比如okttp这个网络框架库,如果我们想要在项目的app模块下使用这个库的功能,则需要在app模块的build.gradle文件中添加相应的依赖,Gradle插件首先会在本地文件系统上去查找是否存在,如果不存在,然后会到全局的build.gradle文件中指定的代码仓库中去获取,需要联网,下面是指定的项目可以在哪些代码仓库当中去获取开源项目

三种依赖关系的添加是在模块中的build.gradle文件中的dependencies闭包下进行添加的

implementation fileTree(include: ['*.jar',dir:'libs'])这行语句的作用是一个本地依赖的声明,表示的含义是将当前项目中的libs目录下的所有后缀名为.jar文件都添加到项目的构建路径当中去,可以理解为本地依赖声明,但不是本地依赖的添加;本地依赖的添加较为简单,只需要将jar文件放置到相应模块(哪一个模块想用使用这个jar包提供的功能,就需要在该模块下的build.gradle文件中添加依赖)下的libs目录下,然后同步一下,看个添加本地依赖的例子吧:
首先来看一下没有添加本地依赖前模块的build.gradle文件的dependencies闭包的内容

记着它的样子,然后由于我们想要在app模块下使用jar包中的功能,首先我们将jar复制到app模块下的libs目录中,如图

不知道大家注意到没有,此时jar包是不可以点击开的,表示这个jar包还有添加到当前项目的构建目录当中,可以理解为没有在该模块下添加本地依赖。接下来我们右键单击jar包,找到Add As Library选项,进行同步

当我们将jar包进行依赖添加后,此时jar文件是可以点击开来的,而且此时我们再次右键jar文件时,Add As Library选项找不到了哦。如果你觉得这样会比较麻烦,那我们可以直接点击同步小按钮,不再右键单击jar包,也可以到达目的,下面是同步小按钮

添加本地依赖之后的jar文件是可以展开的

最后再来看一下dependencies闭包下的内容改变了什么

上面就是本地依赖的添加方式,其实我们可以直接书写多出来的语句添加到dependencies闭包当中。接下来再来学习一下模块依赖的可视化添加,点击Project Structure按钮,出现以下界面

然后点击添加模块依赖

一点击模块依赖,出现以下界面,说当前项目没有可以引用的模块

这是为什么呢?我们能够添加的模块依赖智能是当前项目所包含的,即右边的Modules中列出的模块。这个时候我们需要将模块复制到当前项目,比如我们添加CnwinLib模块,首先要将库模块复制到当前项目,然后在setting.gradle文件指明当前项目包含的模块

在setting.gradle文件中指明当前项目包含的模块

此时我们在来添加模块依赖

然后点击ok,Gradle会帮我同步,此时再来看一下dependencies闭包的内容

implementation project(':CnwinLib')就是用于添加模块依赖的语句,因此我们可以直接书写这个语句,不需要点击来点击去的,前提是如果你记得语句的格式。对于远程依赖的添加是类似的,就不多说。
总结一下,添加本地依赖的语句是implementation files('file-name'),添加模块依赖的语句implementation project(':模块名'),远程依赖添加的语句implementation '那个依赖地址'。
注意点,如果模块要想使用另一个模块,必须进行模块依赖的引用;远程依赖是在全局的build.gradle文件中的代码仓库当中去获取的,如果我们要添加的远程依赖的开源库所在的托管仓库不在我们项目的全局的build.gradle文件中声明过,那么我们是会依赖添加失败的哦。
作者:拜托科技
链接:https://www.jianshu.com/p/04159a2159b4
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Android Studio项目中三种依赖的添加方式的更多相关文章
- 如何在Android Studio项目中导入开源库?
前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不 ...
- 深入浅出spring IOC中三种依赖注入方式
深入浅出spring IOC中三种依赖注入方式 spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和 ...
- Android Studio 项目中集成百度地图SDK报Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()I错误
Android Studio 项目中集成百度地图SDK报以下错误: java.lang.UnsatisfiedLinkError: Native method not found: com.baidu ...
- Spring中三种配置Bean的方式
Spring中三种配置Bean的方式分别是: 基于XML的配置方式 基于注解的配置方式 基于Java类的配置方式 一.基于XML的配置 这个很简单,所以如何使用就略掉. 二.基于注解的配置 Sprin ...
- 【转】ZYNQ中三种实现GPIO的方式
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/husipeng86/article/det ...
- Android——Android studio项目中如何查看R.java文件(转)
Android Studio 是Google推出的一个Android开发环境,它集成了Android 开发工具用于开发和调试,类似 Eclipse ADT.Google公司停止对eclipse的后续支 ...
- 【SSH系列】深入浅出spring IOC中三种依赖注入方式
spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入什么?控 ...
- spring IOC中三种依赖注入方式
Spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则,用来消减计算机程序之间的耦合问题,控制反转一般分为两种类型,依赖注入和依赖查找,依赖什么?为什么需要依赖?注入 ...
- Android Studio 项目中,哪些文件应该忽略而不提交到svn的服务器中?
Android Studio 中建议过滤的文件: - .idea 文件夹 - .gradle 文件夹 - 所有的 build 文件夹 - 所有的 .iml 文件 - local.properties ...
随机推荐
- notepad++查看Log
安装步骤:打开notepad++,插件→ Plugin Manager→ Show Plugin Manager→ Avaliable→ 等待插件列表刷新出来后,选中Android Logger插件→ ...
- rails 里js 在production 只合并不压缩等问题,以及assets pipeline 加载js 在指定页面上
因为刚学rails,试着做了一个小系统操作微信公共帐号, 之后部署的时候遇见了一个问题,整套系统在互联网端访问,非常的慢,而在手机端访问,10s后才会有响应, 打开chrome的调试工具,发现appl ...
- Spring Cloud学习笔记之微服务架构
目录 什么是微服务 架构优点 架构的挑战 设计原则 什么是微服务 微服务构架方法是以开发一种小型服务的方式,来开发一个独立的应用系统的. 其中每个小型服务都运行在自己的进程中,并经常采 ...
- 021-动态生成验证码jsp代码模板
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- windows2008利用serv-u14.0.0.6架设FTP服务器的方法
这几天在公司的服务器上安装serv-u,想把它做成可以传输文件的ftp服务器,结果遇到了很多问题,试了serv-u的好几个版本,结果都不行,最终只有serv-u14安装成功. 安装过程很简单,安装后除 ...
- Docker学习笔记(1)-简介
1. 简介 Docker使用Google公司推出的Go语言开发实现,基于Linux内核的cgroup, namespace以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚 ...
- 大话java基础知识一之为什么java的主函数入口必须是public static void
为什么java的主函数入口必须是public static void main (String[] args); 很多写javaEE好几年的程序员经常会记得java的主函数就是这么写的,但实际上为什么 ...
- textarea存起来的数据把空格也存起来
textarea的属性wrap="hard"可以把换行的内容也存起来. <html> <head> <title>这是一个小测试</tit ...
- 使用 Notapad++ 进行 Java 开发
准备工具 1.安装 JDK 以及配置相关环境变量: 2.安装 64 位版的 Notepad++ : 2.一台 64 位 Windows 系统电脑: 一.下载&安装Notepad++ 官网下载地 ...
- nginx启动时报错
nginx启动时报错 原因:nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed /var/cache/ngin ...