前言

在我所经历的项目组中有这几种方法来生成APK

  1. 直接在Unity生成APK,可以接入SDK

  2. 使用Unity导出Android Studio工程手动生成APK

  3. 使用Unity导出Android Studio工程命令行离线生成APK

这里记录一下我在项目组使用Android Studio出包的笔记。

使用Unity导出Android Studio工程前建议查看我之前的文章《Unity2019及Unity2020打包android的环境配置》,主要介绍替换或修改Unity安装目录下的baseProjectTemplate.gradle,把链接指向国内能加快速度。

说明:我把Android Studio简称为AS,AS生成APK使用gradle来构建。

准备知识:

说明:在AS生成apk,as会根据配置帮你下载gradle和其它依赖文件,如果你不使用命令行,则不需要手动下载和配置gradle到环境变量中。

我打包使用的软件环境:

Unity导出Android Studio工程

使用Unity导出Android Studio工程,需要的环境:JDK,Android SDK,NDK(IL2CPP必须要NDK,但是导出Mono的包则不需要NDK)

NDK官网下载:https://developer.android.google.cn/ndk/downloads/

不同版本的Unity需要的ndk版本也不相同,比如2018.4需要ndk-r16b,而2019.3则需要ndk-r19,注意大小版本号要完全一致。

关于Unity不同版本要求的NDK版本,可以见这篇文章《不同版本的Unity要求的NDK版本和两者对应关系表(Unity NDK Version Match)》

Unity所需要的gradle版本关系

在unity安装目录下的 baseProjectTemplate.gradle 中可以修改android gradle plugin version

Unity version Gradle version
2020.1 5.6.4
2018.4 starting from 2018.4.4f1 2019.1 starting from 2019.1.7f1, 2019.2, 2019.3, and 2019.4 5.1.1
2018.3, 2018.4 up to and including 2018.4.3f1 2019.1 up to and including 2019.1.6f1 4.6
2018.2 4.2.1
2018.1 4.0.1
2017.4, starting from 2017.4.17 4.6
2017.4 up to and including 2017.4.16 4.0.1
2017.1, 2017.2 2.14

使用Android Studio生成APK

  1. 使用Android Studio打开工程
  2. 点击 Build -> Generate Signed Bundle/APK ,然后选择APK
  3. 选择keystore和输入密码
  4. Build Type选择Release,Signature Versions,v1必须勾选,V2建议勾选
  5. 等待AS build完成,根据电脑配置所需要的时间不同
  6. 出现BUILD_SUCCESS ,就生成成功了,生成的APK放在:项目工程release\xxx-release.apk

Signature Versions中V1和V2

如果生成的APK在模拟器上无法安装,尝试只勾选V1

有关 Signature Versions中V1和V2的资料:《Android Studio 打包时 Signature Version V1 V2》

经测试:只勾选了V2,在MUMU模拟器上无法安装APK,而在安卓11的手机上是可以安装的。这是因为V2只对安卓7以上系统有效,而模拟器的安卓版本一版都比较低,比如mumu的安卓6

Unity2019使用Android Studio 4出安卓包的更多相关文章

  1. Android Studio修改项目的包名

    android studio的修改包名,没有有Eclipse环境中那么好操作.也可能你对Eclipse的操作比较熟悉,对Andoid Studio的操作还不太熟悉.在项目的开发中,你可能遇到需要更改模 ...

  2. Android Studio下导出jar包和aar包

    Android Studio下导出jar包和aar包 jar包和aar包的区别 步骤 1. 创建Android工程 创建工程比较简单,不错复述 2. 创建一个Library(Module) 创建了一个 ...

  3. Android studio 自动导入(全部)包 import

    http://blog.csdn.net/buaaroid/article/details/44979629 1 Android studio 只有import单个包的快捷键:Alt+Enter.没有 ...

  4. Android studio 自动导入(全部)包 import (转)

    原文: https://blog.csdn.net/buaaroid/article/details/44979629 1.      Android studio 只有import单个包的快捷键:A ...

  5. 使用 Android Studio 开发 widget 安卓桌面插件

    •What AppWidget 即桌面小部件,也叫桌面控件,就是能直接显示在Android系统桌面上的小程序: 这么说可能有点抽象,看图: 像这种,桌面上的天气.时钟.搜索框等等,都属于 APP Wi ...

  6. Android studio常用快捷键导包的设置

    下面是一些快捷键的使用还有快速导包的设置 1. Ctrl+G 同时按下Ctrl+G快捷键弹出快速定位框,在框中输入行数点击OK即可快速切换到对应的行数,如图2.17所示. 2. Ctrl+E 同时按下 ...

  7. Android Studio下打jar包

    在我们使用Eclipse时,我们常常使用的第三方类库文件大多都是jar包形式,用起来很方便.但是jar包只能打包class文件,对于Android UI类库而言,我们常常需要打包资源文件,对于界面不多 ...

  8. Android Studio 如何打JAR包

    Android Studio 如何打JAR包 在eclipse中我们知道如何将一个项目导出为jar包,供其它项目使用.  在AS中可以通过修改gradle才处理.  我们新建一个项目MakeJar,在 ...

  9. 新建项目找不到android studio:appcompat v7:27.+包。

    1.我们在build.gradle(project)中添加maven中的google库: allprojects { repositories { jcenter() maven { url &quo ...

  10. Android Studio导入第三方jar包或依赖工程的方法

    Android Studio导入第三方jar包或依赖工程的方法   一 导入jar包的方法 1.打开自己的工程,将需要导入的jar包copy到libs文件夹下 2.在导入的jar包处单击菜单 Add ...

随机推荐

  1. Midjouney限时免费体验

    前言 Midjourney 是一个人工智能程序,可根据文本生成图像,目前架设在 Discord 频道上.于 2022 年 7 月 12 日进入公开测试阶段,使用者可通过 Discord 的机器人指令进 ...

  2. Codeforces Round #736 (Div. 2) A~D

    比赛链接:Here 1549A. Gregor and Cryptography 不难,观察一下就容易得知要想使得 \(p\pmod a = p\pmod b\) 令 \(a = 2,b=p - 1\ ...

  3. Codeforces 1312B Bogosort (逆序证明)

    Example input 3 1 7 4 1 1 3 5 6 3 2 1 5 6 4 output 7 1 5 1 3 2 4 6 1 3 5 看题的时候发现和sort有关,但一定要逆序排序 证明: ...

  4. 【每日一题】6.Rinne Loves Edges (树形DP)

    题目链接:Here 树形DP 算法讲解:Here 无向联通图其实就是树的形状,其次让我们以 s 为根使得所有的叶子节点不能到达根并且让删去边权的总和最小,那么就是典型的 树形DP 了. \(dp_i\ ...

  5. 前端科普系列(5):ESLint - 守住优雅的护城河

    作者:Morrain [前端科普系列]帮助阅读者了解web前端,主要覆盖web前端的基础知识,但不深入讲解,定位为大而全并非细而精,适合非前端开发的同学对前端有一个系统的认识,能更好的与前端开发协作. ...

  6. 图扑数字孪生智慧机场,助推民航"四型机场"建设

    前言 民航局印发的<智慧民航建设路线图>文件中,明确提出智慧机场是智慧民航的四个核心抓手之一.并从机场全域协同运行.作业与服务智能化.智慧建造与运维方面,为智慧机场的发展绘制了清晰的蓝图. ...

  7. threejs第一个案例

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 < ...

  8. java进阶(22)--Collection接口

    一.基本概念呢 1.Collection在没有使用泛型之前的,Collection中可存储所有Object所有子类型 使用泛型后,Collection只能存储某个具体类型.   二.collectio ...

  9. 万字血书Vue—Vue的核心概念

    MVVM M:模型(Model):data V:视图(View):模板 VM:视图模型(ViewModel):Vue实例对象 Vue收到了MVVM模型的启发,MVVM是vue实现数据驱动视图和双向数据 ...

  10. [转帖]021系统状态检测命令sosreport

    https://www.cnblogs.com/anyoneofus/p/16467677.html   sosreport命令用于收集系统配置及架构信息并输出诊断文档.