最近一家新公司,由于办公环境都是在内网机上,导致在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. 巧妙运用Camtasia制作爱豆的动感影集

    对于追星族来说,收集爱豆的图片.视频是日常必做的事情,而对于进阶型的追星族来说,为爱豆自制各种精美的视频.影集等,会让自己追星之路显得更为充实. 我们可以借助Camtasia教程录制软件为爱豆制作各种 ...

  2. 「CERC2017」Donut Drone

    题目链接 洛谷P4739 题目翻译: 你正在模拟无人机探索一个不稳定的环状行星的过程.技术上说,无人机正在穿过一个环形网格---一个在两维上都首尾环绕在一起的矩形网格.格子的行号从上到下依次编号为\( ...

  3. Hibernate框架session的方法

    package Test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernat ...

  4. 1.Cobaltstrike 安装与简介

    1.Cobaltstrike 安装与简介 一.简介 Cobalt Strike是一款美国Red Team开发的渗透测试神器,常被业界人内称为CS.自去年起, Cobaltstrike升级到3.0版本, ...

  5. 测试Hessian反序反序列化 客户端少字段和多字段时能否成功

    import java.io.*; import com.caucho.hessian.io.HessianInput; import com.caucho.hessian.io.HessianOut ...

  6. python之Bug之字符串拼接bug

    \r\n拼接Bug 环境: python3.4.pycharm2017 偶然的学习中遇到了一个问题,百思不得姐,什么问题呢,大家输入太快了,难免有失误就如下面的代码 #构造响应数据 response_ ...

  7. moviepy音视频剪辑:使用fl_time进行时间特效处理报错ValueError: Attribute duration not set

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在使 ...

  8. Python中动态编译函数compile(source, filename, mode, ......)参数filename的作用是什么?

    动态编译函数compile调用语法如下: compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) 其中的fi ...

  9. buu学习记录(上)

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

  10. mybatis批量修改数据

    xxxMapper.xml: <update id="updateSensorWarnings" parameterType="java.util.List&quo ...