Android Studio自带了Terminal命令行插件,使得我们可以很方便地直接在Android Studio下执行命令行语句。
不过默认的Android Studio中的Terminal是不能直接使用的,因此需要进行一定的配置。
1、 配置adb
首先需要配置的是adb选项;在环境变量中,配置系统变量中的Path,添加上sdk下的platform-tools目录,如
D:\Archer_Space\DevelopTools\android-sdk-windows\platform-tools
测试指令:在cmd命令行下输入 adb shell
2、配置gradle
配置gradle的目的是可以在Terminal中执行gradle相关的命令;我们通常用Android Studio下的default gradle wrapper,但是为了方便的使用 gradle,建议下载固定的gradle然后在Android Studio中添加指向。
添加gradle配置很简单,在环境变量中,添加系统变量GRADLE_HOME,指向下载解压的gradle目录,如
GRADLE_HOME: D:\Archer_Space\DevelopTools\gradle-3.4.1-all\gradle-3.4.1
gradle的下载官网: https://gradle.org/
然后在Path中添加 ;%GRADLE_HOME%\bin, 和前面的配置用;分开,注意用英文的;
测试指令: 在cmd命令行下输入 gradle -v (打印gradle版本信息)
3、重启Android Studio,如果不生效,请重启计算机;这样就可以使用Terminal了
二、在Android Studio中,我们经常使用gradle.build文件添加引用的jar包,因为这样省时省力,不用自己去下载jar文件。但是有时候当我们在一个
Module中引入多个jar或者library时,很容易出现的问题就是jar的重复引用,特别是v4, v7等基础包的引用;因为很多框架里面都引用了这些jar,
因此我们需要做的就是用一个方法来找出哪些框架里面引用了冲突的jar,然后将之排除出去,只保留一个jar就可以了。这就用到了我们上面配置 的Terminal命令行工具了,查询框架引用的gradle dependencies的指令是:
gradlew -q app:dependencies
得到的结果如下图:
可以清晰的看到不同的框架下的引用,在这些引用中找到我们的冲突文件,然后在gradle.build中进行过滤,就可以了
如何过滤呢?从上图可以看出,v4这个文件是多次被引用的
support.v7下面
单独的v4引用
recyclerView下面
同一个jar的多次引用,在编译时不会有异常,但是在运行的时候就会报重复引用的错误;下面以recyclerView为例将之过滤掉
compile 'com.android.support:appcompat-v7:23.4.0' {
exclude group: 'com.android.support', module: 'support-v4'
}
采用exclude指令就可以将框架下引用的v4去掉了