背景
为什么要在离线环境里搭建?外网搭建不是很简单吗?
1、 搭建过程中所需SDK、Gradle等资源下载速度太慢。
2、 公司内部环境不允许使用外网。
现在为大家分享一下我在公司内网环境下搭建Android开发环境的辛酸历程。主要讲述一下我遇到问题及解决方案。
一、Android开发环境搭建
当我第一次接到这个任务的时候我欣喜若狂,想当然的以为搭建环境不是So easy的事情吗?我准备了:
1、Java jdk 8
2、Android Studio 3.2.1安装包
3、外网下载好的SDK压缩包
4、gradle-4.6-all.zip
到第二天把文件拷贝到内网一试,发现问题并没有那么简单,怎么调试也不通,瞬间崩溃!后来灰溜溜回去找到这篇文章解决了我的大问题。如果问题就这么简单就解决了,倒也罢了。编译是通过了可是离正常开发还差的远:
工程中所用的依赖包找不到,Gradle编译不通过?
这个棘手的问题,终于在浩如烟海的博客里捞到救命稻草,按照这个思路问题貌似是解决了,为什么说貌似,就是还没有解决,还好功夫不负有心人啊,还真有人把这个漏洞给不上了。
至此总算可以编译通过!
二、将Android依赖包上传到Nexus 3搭建的Maven私服仓库
如果按上面的方法每次都要拷贝Caches然后再处理文件夹路径问题,这显然不是一个好的方法,推荐使用Maven私服仓库管理包。想法都是好的,问题总是一个接一个,这个包怎么传到Maven仓库?我们发现Android依赖包大都是.ARR包,和一般的Maven JAR不同。通过将caches文件夹的依赖包路径转化以后和普通的Maven仓库很像,这个时候就可以通过脚本把包传到Nexus的Maven仓库。
gradle自动下载的包 经过工具处理后的包下面介绍一种更简单、更智能的gradle脚本,将files-2.1文件下包转化为maven仓库包
1、脚本代码uploadToMaven.gradle
apply plugin:'maven'
// 指定编码
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
// 本地仓库
def MAVEN_LOCAL_PATH= repositories.mavenLocal().url
// 缓存区转换到本地Maven仓库
task cacheToLocalMavenRepository(type:Copy) {
group = 'upload'
fromnew File(gradle.gradleUserHomeDir,'caches/modules-2/files-2.1')
into MAVEN_LOCAL_PATH
eachFile{
List<String> parts= it.path.split('/')
it.path = (parts[0]+ '/' + parts[1]).replace('.','/') + '/' + parts[2] + '/' + parts[4]
}
includeEmptyDirsfalse
}
2、新建一个gradle项目,引用这个脚本
笔者是用Android Studio新建一个Android项目,将uploadToMaven.gradle文件放在模块app目录下,如图所示:
uploadToMaven.gradle文件所在位置在app模块下build.gradle文件最后添加:
引用脚本apply from: "/uploadToMavenaven.gradle"
修改Maven的setting.xml文件,更改仓库目录为空文件夹
在工具的最右侧点开gradle任务栏,在app模块下找到upload组
任务所在位置3、将导出的本地仓库上传到私服仓库
4、内网环境新建的Android项目更改build.gradle文件中url为maven私服路径
maven { url 'http://.../'}
三、离线环境安装AVD
在内网环境下一般是不可能在线下载安装AVD的,首先要在外网把AVD安装好,多准备一些不通版本的API,安装好的AVD在SDK文件包下。
1、创建AVD Manager面板下创建虚拟机
选择一个机型,选择已有API,点击Finish即可。
创建好的虚拟机2、启动虚拟机
启动虚拟机时候如果出现如下错误:
>emulator: ERROR: x86 emulation currently requires hardware acceleration! >Please ensure Intel HAXM is properly installed and usable. >CPU acceleration status: HAX kernel module is not installed!
说明VT没有打开,具体打开方式请参考这篇文章。
如果虚拟机还是启动不了可能要考虑电脑配置问题了,内存至少8G才能保证流畅运行。
四、使用第三方虚拟机(MUMU模拟器)
1、下载模拟器
点击下载 提取码:wtdk
2、安装模拟器
傻瓜式安装。
3、连接模拟器
命令行切换到~SDK\platform-tools目录下执行命令:
连接MUMU模拟器adb connect 127.0.0.1:7555
网友评论