建议先看一下这篇文章:

https://linxinfa.blog.csdn.net/article/details/118553713?spm=1001.2101.3001.6650.10&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-10.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-10.no_search_link

环境:unity2019.4.28

unity2019及以上版本,都是使用gradle来打包的

一.总结

1.Gradle是一个打包工具,各版本的下载地址:https://services.gradle.org/distributions/

在unity中的位置:点击Edit/Preferences/External Tools

如果要升级Gradle,可以从上面的下载地址下载gradle-x.x.x-all.zip,然后将解压文件夹下的lib替换unity安装路径的Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle下的lib

具体参考:https://blog.csdn.net/lalate/article/details/119451761

2.Android Gradle Plugins是一个Gradle的插件,专门用来打包apk

它和Gradle有对应的版本关系,如果版本不对应,可能会报错,对应关系:https://developer.android.google.cn/studio/releases/gradle-plugin.html#updating-plugin

下面这图只截取了一部分,具体见上面的对应关系链接

在unity中配置Android Gradle Plugins的方式是,点击Edit/Project Settings/Player/Publishing Settings,勾选这几个即可看到Assets\Plugins\Android目录下生成了几个配置文件

打开baseProjectTemplate.gradle,可以看到用到的Android Gradle Plugins版本为3.4.0,因此unity的Gradle版本要5.1.1

实际上这几个文件是unity从unity安装目录\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates拷贝过来的,勾选了这几个选项表示为项目进行自定义修改,否则就使用模板默认的

二.实践

1.新建一个unity工程,切换到Android平台,直接Build一个apk

2.Build过程中,出现了Plugin with id 'com.android.application' not found的报错,试了网上很多方案都不行,这里可以将C:\Users\用户名\caches下的所有文件删掉,后面Build的时候会重新下载的,猜测是之前caches下的文件有问题

3.工程使用的Gradle版本,可以在工程目录\Temp\gradleOut\.gradle下看到

[Unity移动端]gradle打包的更多相关文章

  1. android通过gradle打包

    这里是最简单的打包方法,实际上gradle的语法是groovy,可以通过编写脚本实现更智能的构建,这个我还不懂==,等我学习了解后,单独整理一个gradle的随笔,这里先应付打包吧   环境要求 安装 ...

  2. [原]Android打包之Gradle打包

    最近尝试了一下Android的Gradle打包,发现确实比Ant打包会方便很多,特此记录下来. 注:android的gradle现在插件的版本已经是0.14.3了,对于一些老的方法和api,有一些已经 ...

  3. Android Studio中使用Gradle打包

    首先要注意一点,Android Studio中把proguard.txt已经命名为proguard-rules.pro,由此可见,採用Gradle打包,混淆规则文件的名称是不重要的.能够自己随便命名. ...

  4. Android Ant 和 Gradle 打包流程和效率对照

    一.Ant 打包:(下载ant.配置环境变量就不说了) 1.进入命令行模式,并切换到项目文件夹.运行例如以下命令为ADT创建的项目加入ant build支持: android update proje ...

  5. gradle 打包springboot项目,找不到项目jar application.class

    如题:gradle 打包springboot项目,找不到项目jar入口main方法:application.class 检查:lib/目录下没有相应项目的jar包 用gradle命令行查看日志:gra ...

  6. 将Vue移动端项目打包成手机app---HBuilder

    将移动端页面打包成app 1.使用 HBuilder 直接编译打包 点击左上角 文件>打开目录>选择目录  选择用Webpack打包好的dist文件目录 由于我添加到项目了,所以会显示该项 ...

  7. gradle 打包 jar (一波三折)

    第一次尝试,打包成功,运行失败 build.gradle 打包 jar { baseName 'testJar' from { //添加依懒到打包文件 //configurations.compile ...

  8. gradle打包分编译环境

    gradle打包分测试.开发.生产环境 buildTypes { debug { signingConfig signingConfigs.myConfig buildConfigField(&quo ...

  9. 使用构建工具gradle打包时,遇到的中文问题和解决方式

    1.使用gradle  clean  war 命令将项目打成war包.这一过程gradle没有提示报错. 2.将得到的myapp.war复制到tomcat下webapps(部署war包) 3.启动to ...

  10. 【Android】Android多渠道打包--Gradle打包

    Android多渠道打包--Gradle打包 前言 由于App一般都会在多个应用市场上架,为了分析App在每个不同渠道的具体的数据,一般都会对不同渠道打包不同的App.多渠道打包有多种方式,这里只介绍 ...

随机推荐

  1. LOD Group

    LOD Group 调节摄像机距离,在不同的距离显示不同物体.常用于物体高低模之间的转换,如离摄像机较远时渲染低模物体,离摄像机较近时渲染高模物体.

  2. 整合jUnit4和jUnit5

    整合jUnit4 1.引入依赖 <dependency> <groupId>org.springframework</groupId> <artifactId ...

  3. 洛谷P4802 [CCO 2015]路短最

    题目 https://www.luogu.com.cn/problem/P4802 思路 数据范围 \(n\leq 18\),义眼丁真,鉴定为状压. 好,那我们来思考一下状态的构建.其实是很套路的东西 ...

  4. 解决“chrome正受到自动测试软件的控制”信息栏显示问题

    在使用Selenium WebDriver启动谷歌浏览器Chrome时,在新启动的浏览器地址栏下方经常会显示一行提示信息:"chrome正受到自动测试软件的控制",英文的就是&qu ...

  5. 关于新版的MySQL安装教程

    主要参考大大的博客,连接如下:https://www.cnblogs.com/xiaohanlin/p/10345501.html 在装MySQL时,突然发现最新版的居然是.zip格式的,我原来的还是 ...

  6. Linux系统安装&VMware安装一

    本次安装使用的VMware版本是15.5pro,镜像文件是centos7_x86 如果你还没有VMware和镜像文件,这里给你提供: https://my.vmware.com/cn/web/vmwa ...

  7. AD9834配置

    SPI设置 注意,虽然手册上CPOL(CLK空闲时电平)为低,但实测是是高电平 连接 SYNC 为片选引脚,使用时拉低 FSE/PSE为频率与相位寄存器选择,均拉低即可 void SPI_Write_ ...

  8. Python基础数据类型-list(列表)

    a = [1, 2, 3] a.append([1, 4]) a.append(8) a.append([8, 9, '10']) # 添加的是整体,即:将输入对象添加到列表末尾 print(a) # ...

  9. javaScript的介绍

    JavaScript Java Script的概述: 1组成 三部分组成 ecmaScript 基础语法(es5) dom document object 莫得了 文档对象模型 (操作html文档内容 ...

  10. ES6 之 Promise

    promise 与ajax 实现两个ajax返回参数的拼接 // 函数 fetch() { return new Promise((resolve, reject) => { Utils.sen ...