本人在unity2021.3.5f1c1打包Android时总是出现以下报错。

unity里bindposes length不一致 unity cannot build_android studio

我大概知道是NDK包中缺少某个文件,所以我一直在搜索ndk-r21d这个包在其他博客其他下载地址会不会就没问题了。在我用unity5.6.0p4打包的时候就没问题,能打包成功,所以很头疼。先保证JDK和SDK没有问题,我之前用的SDK始终有问题在上一篇博客中解决的,有同样问题可以参考[转]UnityException: Android SDK is missing build-tools.报错处理_hutaoze的博客-CSDN博客

先简单提一下思路,我先直接在CSDN中搜索arm-linux-androideabi/bin\ld: error: cannot open其中一个报错,博客中没有任何有用线索,刚好现在CSDN有了ChitGPT就出了它的回答:

这个错误提示通常是由于链接器无法打开某个文件而导致的。具体的原因可能有多种,以下是一些常见的可能性:

缺少必要的库文件或者库文件没有正确安装;
链接器无法找到需要链接的目标文件;
目标文件或库文件的权限不足,无法被链接器读取;
链接器的搜索路径没有设置正确,导致找不到文件。
您可以尝试检查以上可能性,看看是否能够解决问题。如果问题仍然存在,请提供更多的上下文信息和具体的错误提示,以便我能够更好地帮助您解决问题。

顺便我就把另一个报错libatomic.a: No such file or directory给它看怎么回答的:

这个错误提示表明链接器无法找到 libatomic.a 库文件。可能的原因有:

没有安装 libatomic 库文件;
libatomic 库文件没有正确安装或者安装位置不正确;
链接器的搜索路径没有设置正确,导致找不到文件。
您可以尝试执行以下操作解决问题:

确认是否安装了 libatomic 库文件,如果没有,请安装;
检查 libatomic 库文件是否存在于正确的路径下,如果不存在,请将其复制到正确的路径下;
如果是搜索路径问题,可以通过设置 LD_LIBRARY_PATH 环境变量或者在链接指令中使用 -L 参数指定库文件搜索路径。

这篇博客的启发,就想直接用AndroidStudio NDK试试而不是自己去找单独的NDK

unity里bindposes length不一致 unity cannot build_unity_02

 

unity里bindposes length不一致 unity cannot build_unity_03

 这三个博客中找到NDK对应Package或者直接先下载对应的NDK并解压(先提前说这里找到NDK会报错)然后找到这个文件

unity里bindposes length不一致 unity cannot build_unity_04

 双击后用记事本打开,里面的Pkg.Revision就是对应的版本。

 

unity里bindposes length不一致 unity cannot build_android_05

 最后就在图中找到对应的版本就行

unity里bindposes length不一致 unity cannot build_android_06

 最后的最后在unity中更改NDK的位置,位置就在图3的方框2中。文件中就在如图位置

unity里bindposes length不一致 unity cannot build_unity_07

另外简单提一下unity中如何更改NDK的位置 

unity里bindposes length不一致 unity cannot build_github_08

 

 

unity里bindposes length不一致 unity cannot build_unity_09

 点击Browe后选择图7的位置即可

再提一下,为啥最后一张图的方框2的勾要取消,因为那是默认用unity hub安装unity选择安卓组件(JDK,SDK,NDK)后安装的文件位置,但我是先安装的unity再安装的unity hub所以那里面啥都没有,并且unity hub里面也没法重新安装安卓组件,就需要自己找安卓组件来指向。