Unity导出Android 项目
Unity导出Android 项目
项目环境
- mac mini
- Unity Hub 6
- 2022.3.62f1
Unity开发基础
- unity 开发认识 https://www.cnblogs.com/didikee/p/17667073.html
- 跨平台游戏引擎,支持 2D 和 3D 内容创作
- 核心组件
- GameObject 基本单位
- Component
- Project
- Scene创建和编辑游戏场景
- Inspector 窗口,查看和修改 GameObject 属性
- 安装 UnityHub 下载 unity 2022.3.62f1版本时,jdk与 Android sdk 下载失败,打开项目之后发现无法导出,环境路径选择电脑上其他版本提示不支持,最关键的是Unity必须还要使用指定版本。
导出Android 项目
- 导出 Android Studio 项目
- Unity -> File -> Build Setting ->Android -> Export -> 选择新建空白文件夹
- 提示报错Android SDK is missing build-tools.Android SDK Build-tools component is not found. Make sure all tools are installed in the SDK manager.
- 打开 Unity -> Setting -> External Tools,发现 Android 配置部分有警告,必须安装JDK,Android SDK,Android NDK 且必须使用指定版本
- 使用 Unity Hub 发现下载 Unity 版本时Android 部分配置虽然勾选了,但是下载出错了,没有成功将需要配置下载下来。
- 自行下载
- 发现NDK怎么也下不来,查源码库 https://github.com/android/ndk/wiki/Unsupported-Downloads,没有 r23b了,这问题无解了。
- 下载了一个 r25 的版本尝试,结果提示
- You are not using the recommended Android NDK, versions other than 23.1.7779620 are not officialy supported.
- 最后从打开已经安装好的Android Studio 中的sdk 配置中下载了 ndk 的23.1.7779620版本,copy 到 Unity 指定的路径
- 确认了/Applications/Unity/Hub/Editor/2022.3.62f1/PlaybackEngines/AndroidPlayer/路径下 SDK,NDK,OPENJDK 等版本无问题后,测试导出项目成功s

- 导出的项目格式主要有两个模块,一个依赖库unityLibrary,一个可运行的 launcher module
- 使用 Android Studio 打开导出的项目提示
1
org.gradle.api.plugins.UnknownPluginException: Plugin \[id: 'com.android.library', version: '7.4.2', apply: false\] was not found in any of the following sources:
- Android 中 Gradle 版本 check https://developer.android.com/build/releases/gradle-plugin#updating-gradle
- Android Studio -> Setting -> Build,Execution, Deployment -> Build Tools -> Gradle 选择 Gradle JDK 版本使用自带的 jdk 11
- 发现还是构建报错,发现项目根路径下的 build.gradle缺少配置,增加 buildscript{…}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.2'
}
}
plugins {
id 'com.android.application' version '7.4.2' apply false
id 'com.android.library' version '7.4.2' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
- 注意,如果是 mac 这里需要在 gradle-wrapper.properties 中请将
1
2
3
4
distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-bin.zip
设置成
distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-all.zip
同步 gradle 会自动下载相关环境
- launcher 模块中的 build.gradle 配置也需要进行调整,具体可参考 UnityAndroidDemo
- 最后同步 gradle 运行成功!
第一次配置这个 Unity 导出 Android 项目流程真的太繁琐了,即使借助 ai 也费了一些时间,大半时间浪费在了unity环境配置上,另外导出的 Android项目还可以优化一下。有些配置非常冗余,目前只是一个空项目,后面会写一下与 Android交互相关配置。
其他注意事项
- 如果你的项目需要指定使用 jdk 1.8,需要降低 Gradle 版本,Gradle 版本和 wrapper 版本有对应关系,需要同步修改。
- launcher基本上就是一个空项目,所以两个模块可以合并,但 unityLibrary 要设置成 application 结构
- 导出的 ndk 架构要根据游戏适配的设备来加,一般默认以下四种,或者不考虑模拟器的去掉 x86与 x86_64,不加也可以但是某些三方库可能会受到兼容性风险,会增加Exception 几率了,见仁见智自行选择。
1
2
3
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
本文由作者按照 CC BY 4.0 进行授权