IL2CPP需要NDK
Unity使用IL2CPP模式出安卓包时,需要用到NDK,如果没有安装则无法导出Android Studio工程或直接生成APK,本篇记录一下我下载NDK不同版本的填坑过程。
IL2CPP需要NDK
不能使用最新的NDK版本
NDK的大版本和小版本号都要一致
每个Unity版本要求的ndk版本对照表
Unity version | NDK version |
---|---|
2018.4 LTS | r16b |
2019.4 LTS | r19 |
2020.3 LTS | r19 |
2021.1 | r21d |
2021.2 | r21d |
数据来源官网:https://docs.unity3d.com/Manual/android-sdksetup.html
下载NDK
我从google的官网手动下载的ndk19c,但和unity2019.3要求的小版本号不一致,会出现无法编译(见开篇的第二三图)。目前(2021-07-04))在google的官网上只提供了ndk19c的版本,并没有unity要的ndk19这个老版本。
下面介绍方法来获取Unity需要的ndk版本。
Unity2019和Unity2020要求的NDK19.0下载地址:https://dl.google.com/android/repository/android-ndk-r19-windows-x86_64.zip
手动修改ndk版本号
这个方法是修改ndk的属性文件,把版本号修改为unity要求的版本号,我这样修改后可以正常打出APK包,但是不确定是否会有其它副作用。
打开ndk的目录,找到source.properties文件,我从google官网下载的ndk19c版本号为:19.2.5345600,而unity2019要求的版本号是:19.0.5232133,使用文本编辑器修改版本号如下:
Pkg.Desc = Android NDK
Pkg.Revision = 19.0.5232133
通过Unity Hub来安装
Unity的原话是:
Unity 建议使用 Unity Hub 来安装 Android SDK & NDK Tools,以确保您获得正确的版本和配置。Unity 分别在 /Unity/Hub/Editor/[EditorVersion]/Editor/Data/PlaybackEngines/AndroidPlayer/ 下的 SDK、NDK 和 OpenJDK 文件夹中安装 Android SDK & NDK Tools 和 OpenJDK。
方法就是:打开Unity Hub,在安装 - 添加模块 - 勾选Android SDK和NDK,然后点击下一步即可。