最近一家新公司,由于办公环境都是在内网机上,导致在Unity导出android工程后,gradle离线构建也是第一次搞,花了一天时间也踩了一些坑,最后也终于构建成功了,这里记录下,方便大家少走些弯路。

1.准备版本:AndroidStudio3.5.2,Gradle5.1.1,Gradle插件3.4.0

  AndroidStudio下载链接:https://developer.android.com/studio/archive?hl=zh-cn

  Gradle下载链接:https://services.gradle.org/distributions/

  maven依赖基础包下载链接:https://developer.android.com/studio?hl=zh-cn

2.打开Gradle离线模式

  File>Settings>Build>Gradle,勾选Offline Work,指定C:/Users/xxx/.gradle

  Gradle-wrapper.properties,修改distributionUrl=file:///F:/gradle-5.1.1-all.zip

  注意:1.复制的路径可能会有一场,有问题的话,就不要偷懒,手输吧

     2.指定了url的话,settings里的Use Local Gradle distribution 是可以不用勾的。

3.按照官方提供,指定本地maven依赖库

  maven基础包下载完后,放解压到 C:/Users/xxx/.android/manual-offline-m2/,第一次可能都要手动创建目录结构,

  在C:/Users/xxx/.gradle/init.d/ 目录(可能也要手动创建)下,创建名为offline.gradle的空白文件,编辑内容在第一步解压后的列表中有ReadMe自己赋值就行

4.注释默认build.gradle配置

  buildscripts

  {

    repositories{}

    dependencies

    {

      classpath 'com.android.tools.build:gradle:3.4.0'

    }

  }

5.直接复制外网机下载好的缓存

  最好是把之前有过外网环境下载的缓存拷贝到C:/Users/xxx/.android/manual-offline-m2/目录中。

  一般下载缓存地址: C:/Users/xxx/.gradle/caches/modules-2/files-2.1

6.构建异常踩坑补漏

  有可能还会出现一些新的依赖库丢失,这里提供两个可搜索下载的链接

  https://search.maven.org/artifact

  https://mvnrepository.com/artifact (可能会有验证码环节)

  这里我还出现了一个额外的坑,Unable to load class 'com.sun.xml.bind.v2.model.annotation.annotationreader',去查了下,google上也有大佬给出了答案,这里也把解决方案告诉大家,

这个问题原因还是出现在下载的gradle插件3.4.0上面。在 C:/Users/xxx/.android/manual-offline-m2/gmaven-stable/com/android/tools/build/gradle/3.4.0目录下的gradle-3.4.0.pom文件中最底

下添加三个依赖,再次就编译成功了,基本就这些坑吧。

<dependency>

  <groupId>org.jvnet.jaxb2.maven2</groupId>

  <artifactId>maven-jaxb2-plugin</artifactId>

  <version>0.14.0</version>

  <scope>compile</scope>

</dependency>

<dependency>

  <groupId>com.sun.xml.bind</groupId>

  <artifactId>jaxb-impl</artifactId>

  <version>2.2.11</version>

  <scope>compile</scope>

</dependency>

<dependency>

  <groupId>com.sun.xml.bind</groupId>

  <artifactId>jaxb-core</artifactId>

  <version>2.2.11</version>

  <scope>compile</scope>

</dependency>

Gradle AndroidStudio内网离线构建配置踩坑记录的更多相关文章

  1. 在mac版virtual box中安装ubuntu虚拟机的NAT/Host-Only网络配置踩坑记录

    之前用惯了vmware和parallels desktop,网络配置十分智能,基本不用自己配置.由于版权原因,工作电脑上换了免费的virtual box用,四五年都完全在虚拟机里干活的本菜鸡居然在虚拟 ...

  2. XXLJOB2.1.0数据源配置踩坑记录

    最近在看XXLJOB,因为截至到发文时间最新的版本是2.1.0而且需要建立的数据库与Quartz解耦了,所以就用了最新的版本. 首先说一下踩坑过程: 代码开发完成之后,在定时跑的时候第一次跑的多数失败 ...

  3. 记一次 Spring 事务配置踩坑记

    记一次 Spring 事务配置踩坑记 问题描述:(SpringBoot + MyBatisPlus) 业务逻辑伪代码如下.理论上,插入数据 t1 后,xxService.getXxx() 方法的查询条 ...

  4. mybatis-generator:generate 生成代码配置踩坑详解

    mybatis-generator:generate 生成代码配置踩坑不少,在此留下笔记以便后续填坑 一.mysql返回时间问题 错误信息: [ERROR] Failed to execute goa ...

  5. manjaro xfce 18.0 踩坑记录

    manjaro xfce 18.0 踩坑记录 1 简介1.1 Manjaro Linux1.2 开发桌面环境2 自动打开 NumLock3 系统快照3.1 安装timeshift3.2 使用times ...

  6. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

  7. 复杂业务下向Mysql导入30万条数据代码优化的踩坑记录

    从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负责的模块connector就派上了用场. ...

  8. [技术博客]iview组件样式踩坑记录

    [技术博客]iview组件样式踩坑记录 iview官方文档. 在本次项目开发中,前端项目主要使用vue框架+iview组件构建,其中iview组件在使用过程中遇到了许多官方文档中没有明确说明或是很难注 ...

  9. Spark Ignite踩坑记录

    Ignite spark 踩坑记录 简述 ignite访问数据有两种模式: Thin Jdbc模式: Jdbc 模式和Ignite client模式: shell客户端输出问题,不能输出全列: 针对上 ...

随机推荐

  1. 换系统之后为什么iMindMap会提示“许可证使用的次数过多”

    iMindMap是一款十分受欢迎的思维导图软件,随着12版本的上线,iMindMap新增了很多新用户,最近小编发现有不少新用户在群里反映:"为什么购买iMindMap时说可以支持换机,但是在 ...

  2. ubuntu安装php的 mongodb扩展

    wget https://pecl.php.net/get/mongodb-1.2.6.tgztar -zxvf mongodb-1.2.6.tgz cd mongodb-1.2.6 /usr/bin ...

  3. 安装卸载nginx

    http://www.nginx.cn/install ubuntu和debain下的apt方式安装软件很方便,特别是对于新手安装和卸载nginx. 由于nginx不能动态添加模块,所以会经常安装和卸 ...

  4. 肝了75天,五万五千字,《Spring Boot 进阶》专栏文章整理成册,分享~

    前言 Spring Boot 这个专栏从早期的体系构建到写完,总共花费了七十五天,期间由于工作及个人原因停更了一段时间,没办法,工作实在太忙了. 很多人疑惑了,为什么源码介绍过了就结束了?高级的部分不 ...

  5. Docker 与 Podman 容器管理的比较

    翻译自 Paul Ferrill 2020年9月1日的文章<Compare Docker vs. Podman for container management> [1] Docker 和 ...

  6. 因为一个Docker问题,我顺手整理从安装到常用命令操作手册

    今天,自己写了一部分业务代码,是常规代码的另外一种方式,不能在公司的服务器上测试,就自己在PC端搭建了一套和公司集群一样的模板,因为公司的业务模块的测试有单独的服务器(这一块还是我很稀罕的),但是,第 ...

  7. linux下的bash shell

    运行bash shell命令的方式 vi t1.sh 并输入 pwd ls pwd 然后:x保存关闭 1.首先查看权限 ls -l,如果没有执行权限则用chmod a+x t1.sh ,最后运行./t ...

  8. Python中字符串使用单引号、双引号标识和三引号标识,什么是三引号?什么情况下用哪种标识?

    一.三引号是指三个单引号或者三个双引号: 二.Python中字符串如果以单引号.双引号标识和三引号标识开头,则字符串结尾也必须是对应的标识,不能变更: 三.三者的异同: 1.三者都是字符串,大部分情况 ...

  9. buu学习记录(上)

    前言:菜鸡误入buu,差点被打吐.不过学到了好多东西. 题目名称: (1)随便注 (2)高明的黑客 (3)CheckIn (4)Hack World (5)SSRF Me (6)piapiapia ( ...

  10. MongoDB 复合索引结构