最近,在研究APP自动化相关的东西,在搭建环境的时候,遇到的坑以及最后解决的方法,在这里记录一下:
首先是build配置文件:
1表示工程下的build配置文件,2表示模块目录的build配置文件,如下图:
1)工程下的build文件配置,主要包括以下内容:
1、repositories闭包
该闭包中声明了jcenter()的配置,其中jcenter是一个代码托管仓库,上面托管了很多Android开源项目,在这里配置了jcenter后我们可以在项目中方便引用jcenter上的开源项目。
2、dependencies闭包
该闭包使用classpath声明了一个Gradle插件,由于Gradle并不只是用来构建Android项目,因此此处引入相关插件来构建Android项目,其中‘3.0.1‘为该插件的版本号,可以根据最新的版本号来调整。
该闭包中声明了jcenter()的配置,其中jcenter是一个代码托管仓库,上面托管了很多Android开源项目,在这里配置了jcenter后我们可以在项目中方便引用jcenter上的开源项目。
2、dependencies闭包
该闭包使用classpath声明了一个Gradle插件,由于Gradle并不只是用来构建Android项目,因此此处引入相关插件来构建Android项目,其中‘3.0.1‘为该插件的版本号,可以根据最新的版本号来调整。
具体配置内容如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { //使用maven仓库。android有两个标准的library文件服务器,一个jcenter一个maven。两者毫无关系。 //jcenter有的maven可能没有,反之亦然。 //如果要使用jcenter的话就把mavenCentral()替换成jcenter() google() jcenter() // mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.1‘ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() //mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.1‘ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() //mavenCentral() //maven { url "http://18.8.10.110:8081/nexus/content/repositories/releases/" } } } task clean(type: Delete) { delete rootProject.buildDir }
2)模块目录下的build文件配置,主要包括以下内容:
1、 defaultConfig闭包
对项目的更多细节进行配置,其中applicationId指定了项目的包名,我们可以通过修改这个值来修改项目的包名。
对项目的更多细节进行配置,其中applicationId指定了项目的包名,我们可以通过修改这个值来修改项目的包名。
2、 buildTypes闭包
这个闭包主要指定生成安装文件的主要配置,一般包含两个子闭包,一个是debug闭包,用于指定生成测试版安装文件的配置,可以忽略不写;另一个是release闭包,用于指定生成正式版安装文件的配置。
这个闭包主要指定生成安装文件的主要配置,一般包含两个子闭包,一个是debug闭包,用于指定生成测试版安装文件的配置,可以忽略不写;另一个是release闭包,用于指定生成正式版安装文件的配置。
3、dependencies闭包
该闭包定义了项目的依赖关系,一般项目都有三种依赖方式:本地依赖、库依赖和远程依赖。本地依赖可以对本地的jar包或目录添加依赖关系,库依赖可以对项目中的库模块添加依赖关系,远程依赖可以对jcener库上的开源项目添加依赖关系。
该闭包定义了项目的依赖关系,一般项目都有三种依赖方式:本地依赖、库依赖和远程依赖。本地依赖可以对本地的jar包或目录添加依赖关系,库依赖可以对项目中的库模块添加依赖关系,远程依赖可以对jcener库上的开源项目添加依赖关系。
具体配置内容如下:
//声明是Android程序 apply plugin: ‘com.android.application‘ android { //编译sdk的版本,也就是API Level,例如API-23、API-24、API-25等等 compileSdkVersion 26 //build tools的版本,其中包括了打包工具aapt、dx等等。 //这个工具的目录位于你的sdk目录/build-tools/下 buildToolsVersion ‘26.0.2‘ defaultConfig { //应用包名 applicationId "com.cxq.myapplication" //最小sdk版本,如果设备小于这个版本或者大于maxSdkVersion(一般不用)将无法安装这个应用 minSdkVersion 26 //目标sdk版本,如果设备等于这个版本那么android平台就不进行兼容性检查,运行效率会高一点 targetSdkVersion 26 //版本更新了几次,第一版应用是1,以后每更新一次加1 versionCode 1 //版本信息,这个会显示给用户,就是用户看到的版本号 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release {//release版本的配置 minifyEnabled false //是否进行混淆 //release的Proguard默认为Module下的proguard-rules.pro文件. proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘ matchingFallbacks = [‘release‘, ‘debug‘] } } } //一些依赖的框架 dependencies { implementation fileTree(include: [‘*.jar‘], dir: ‘libs‘) implementation ‘com.android.support:appcompat-v7:26.1.0‘ testImplementation ‘junit:junit:4.12‘ androidTestImplementation ‘com.android.support.test:runner:1.0.1‘ androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.1‘ androidTestImplementation ‘com.android.support.test:rules:1.0.1‘ implementation ‘com.android.support.test.uiautomator:uiautomator-v18:2.1.3‘ //implementation files(‘libs/uiautomator.jar‘) //implementation ‘com.gionee.autotests.common:common-lib:1.0.7‘ //implementation ‘com.gionee.android.autotests.common:android-common:+‘ }
还有一些其他的设置问题,后续再做更新;