这里写自定义目录标题
- 踩坑记录
-
- 使用环境
- Unity的准备工作
- [Windows10 SDK](#Windows10 SDK)
- Androidstudio
踩坑记录
踩了快一个星期的坑,希望能帮助到有需要的人
项目使用的是unity2019版本,由于很多新的插件和功能都已经不支持2019了,所以升级unity的版本
在升级版本的过程中遇到了很多的问题,因为本身基础较差,加之比较新,网上能找到的解决办法少之又少,当然也存在不希望外露保持技术神秘感的大神...
扯远了,在这里记录一下踩坑的过程以及解决办法
使用环境
Androidstudio 2022.3 - - -最好是比较新的像4.11左右或者一下的就尽量不要用了,老版本在打包的时候会弹出异常,提示某些以前在build.gradle里的关键字已经失效了,要用新的去代替
unity 2023 - - -安卓打包相关的工具
windows10 sdk 10.0.1314 - - - 后面会说是干嘛的
ndk r23b - - - 后面会上传附件
sdk 28及以上- - -后面会上传附件,也可以在as官网里下
gradle 7.6.0 - - - 这个在安卓工程里的gradle-wrapper.properties里可以修改
gradle插件 7.4.1 - - - 这个需要和gradle进行匹配,网上可以根据gradle找到对应的版本 在项目根目录下的build.gradle里
Unity的准备工作
在unityhub下载unity2023 我的是2023.1.12f
下载对应的安卓环境(同事亲测它帮我们下的安卓环境是有问题的,比如unit2023打包安卓至少是jdk11,但是它帮我们下的jdk还是8的)
下载之后选择安卓环境打开项目,然后制作你的项目
写完代码后可以现在unity打包成apk看看能不能正常打包运行
如果要打包的话,需要自己安装jdk11
然后在
上图的位置去掉勾勾,选择你安装好的jdk11的路径
后面的sdk和ndk,gradle都是一样的道理,当然你可以先用默认的打包看看有没有问题,有的话再去下载我上面说的sdk和ndk版本,然后在上图修改对应的路径
到这里应该就能正常打包了
为什么说可以先试一下官方默认给你的环境路径去打包呢,因为这个2023可能太新了,官方还没有适配还是什么的,后面可能就发现了这个问题,指不定后面的你们去打包的时候他已经适配好了呢是吧?
打包的设置
我使用的是il2cpp的打包模式,mono的还没试过,不过估计比il2cpp简单很多
记得在playersettings里确定下面两个都勾上了
然后unity的工作就基本结束了
Windows10 SDK
在unity工程集成到Androidstudio之前还需要确保一个工具已经准备好了
就是window10 SDK
这个可以在vs installer里点击修改
然后点击
确保你的电脑已经至少又一个Windows10 sdk了,否则在集成之后打包的过程中会出现异常
具体的说就是il2cpp在打包的时候会调用c++这类比较底层的代码,而在Androidstudio中调用的时候会需要用到系统里的c++部分代码,其中的内容就是在这个Windows10 sdk里,如果你没有的话,打包的时候就会提示你error # include <string.h>类似的字样,导致打包失败
Androidstudio
这里的部分比较复杂,我尽量剪短一点说明
因为是在Androidstudio里进行整体打包的,所以这里的打包环境一定要确定是正确的(也就是说每个工具之间的版本一定要是兼容和匹配的)
如果不匹配的话就会出现很多你在网上根本找不到原因和办法的异常,因为它给出的异常信息就少之又少,所以寻找解决办法就是在大海捞针
每个工具之间的版本我在上面已经写了,如果你的工具版本和我的不一样,需要自己去尝试
如果比我低很多的,建议你用我上面推荐的版本,因为版本太低的工具基本上是被淘汰了,其他的工具已经不支持了
比如你的sdk和ndk都是比较新的,但是你的gradle还是老的版本
再具体一点就是sdk是34,nkd是r23b的,但是你的gradle版本还在4.0或者附近的话,在打包的时候就会出现提示你某些xml里的属性不见了,就是因为不兼容的问题导致的
所以如果你遇到了异常但是又弹尽粮绝的话,可以尝试更新工具的版本
在projectsettings里设置你的sdk,ndk以及jdk
然后按照官方给出的unity集成到Androidstudio的流程进行操作
https://github.com/Unity-Technologies/uaal-example/blob/master/docs/android.md
把unity打包出来的安卓工程里的unitylibrary集成到Androidstudio里
第一个需要注意的地方
官方里说的
在setting.gradle里添加框框里的内容的需要修改
我使用的Androidstudio2022
需要把框框里的内容放到项目根目录下的build.gradle里
第二个需要注意的地方
下图框框里的路径你记得改成你的unitylibrary的路径,不要直接复制粘贴,我就是直接复制粘贴了,sync半天都没识别到unitylibrary...
第三个需要注意的地方
Androidstudio 2022版本好提示你包名的设置已经更换了新的规则,需要进行修改
在主模板里的builder.gradle添加这个
不能在AndroidManifest.xml里添加packagename这个字段了,否则会报异常
第四个需要注意的地方
需要在
string.xml文件中添加上面这行代码,否则会弹出recources x00之类的异常
这个是老问题了,之前的版本打包的时候也会又这个问题
第五个需要注意的地方
在项目根目录的local.properties文件里
可以指定一下你的sdk和ndk的路径
不指定的话就在projectsettings里进行选择
Androidstudio2022已经不支持在buidl.gradle的defaultconfig里添加ndk这个关键词了
直接在外面添加ndkversion就可以了
就先记录这么多吧,研究了快一个星期了...
可能还有一点遗漏的,想起来的话会再更新的...
希望可以帮助到有需要的人...