unity il2cpp打包安卓打包崩溃原因Unity2020.3 il2cpp.so丢失
创始人
2024-02-07 17:11:54
0

Unity2020.3 il2cpp.so

问题:升级unity2020.3后,使用il2cpp方式打Android包,在手机上启动会崩溃,追查崩溃原因是il2cpp.so not found。

解决过程:

il2cpp.so没有?一脸懵逼!记得以前在调用BuildPipeline.BuildPlayer后,会直接在lib目录下生成il2cpp.so,现在怎么没有了呢?

没有什么头绪,能想到的也就:

1、是不是BuildPipeline.BuildPlayer接口参数有了变化?

2、代码上是否编译报错,导致il2cpp.so生成失败?

3、unity2020.3的bug?

4、unity2020.3对il2cpp进行了改动,需要新的使用方式?

这个问题查了2天的时间,对上面列举的原因一一进行了排除尝试。

1、是不是BuildPipeline.BuildPlayer接口参数有了变化?

首先想到的是是否有构建参数可以控制il2cpp.so的生成,因为以前il2cpp.so就是在BuildPlayer的native阶段生成的。

查遍了BuildOptions的所有参数,没有找一个跟il2cpp相关的参数。

2、代码上是否编译报错,导致il2cpp.so生成失败?

打印了BuildPipeline.BuildPlayer的结果BuildReport,没发现任何报错。

3、unity2020.3的bug?

安装了unity2020.3最新版本,打包同样崩溃,想通过切换unity版本来解决的想法破灭。

4、unity2020.3对il2cpp进行了改动,需要新的使用方式?

查看了unity2020.3的官方文档,没有找到有用的相关说明。

新建了一个测试项目,发现点击Build Settings中的export,同样没有生成il2cpp.so。

但是点击build直接生成apk,解包apk发现有il2cpp.so。

到这里算是有点眉目了。

对比自定义Gradle Template模板文件,并没有发现什么不一样的。

这里误导了我,耽误了很久的时间,直到我去对比gradle导出目录的build.gradle文件,发现了特别的东西

在unityLibrary/build.gradle文件中,发现了BuildIl2CppTask任务。

到这里,算是找到了真正的原因!原来il2cpp.so是通过BuildIl2CppTask任务生成的。

但是为什么调用BuildPipeline.BuildPlayer,没有在build.gradle中加入BuildIl2CppTask任务呢?未解之谜啊!

不纠结,先解决崩溃的问题,既然发现是unity没有加入BuildIl2CppTask任务,那就让我加入吧。

            // 修改unityLibrary/build.gradlestring path = gradlePath + "/unityLibrary/build.gradle";string str = File.ReadAllText(path);// BuildIl2CppTask任务模板文件string path2 = gradlePath + "/../Assets/Plugins/Android/il2cppTask.txt";string task = File.ReadAllText(path2)str += task;File.WriteAllText(path, str);

在BuildPipeline.BuildPlayer之后,执行上述代码,实现修改build.gradle文件的目的。

相关内容

热门资讯

B费首轮数据:5次关键传球+2... 在2023年英超联赛首轮的比赛中,曼联迎来了与阿森纳的较量。这场备受瞩目的比赛不仅是两队的实力对决,...
欧洲领导人:若不能达成停火协议... 欧洲理事会主席科斯塔(资料图) 当地时间8月17日,欧洲理事会主席科斯塔在社交媒体发文表示,目前跨大...
1分惜败!中国男篮获得亚洲杯亚... 北京时间8月18日凌晨,2025年男篮亚洲杯决赛中,中国男篮以1分之差(89-90)憾负澳大利亚男篮...
山东新潮能源股份有限公司 关于... 证券代码:600777 证券简称:*ST新潮 公告编号:2025-085 山东新潮能源股份有限公司 ...
亚洲电视控股(00707):终... 亚洲电视控股(00707)发布公告,内容有关香港科技园公司作为原告与公司附属公司亚洲电视有限公司作为...
莱奥7年磨一剑!米兰首战破门,... 在意大利杯首轮的比赛中,AC米兰与巴里展开激烈角逐。比赛刚开始不久,红黑军团的明星球员莱奥便打破了僵...
7000亿央企巨头重组,狂扫资... 7000亿市值央企巨头中国神华最新公告,公司股票将在8月18日(明天)复牌! 公司拟通过发行A股股...
詹俊:曼联赢了场面输了比赛,阿... 直播吧08月18日讯 英超首轮,曼联0-1不敌阿森纳,赛后,评述员詹俊对比赛做出点评。 詹俊:曼联赢...
凌晨怪事!男子提着茅台袋子在车... 凌晨四五点, 一名男子提着两个茅台酒的袋子 出现在小区地下停车场, 一转身, 又在消防通道旁的垃圾桶...
温州调整住房公积金政策 双人最...   据公众号温州发布消息,温州市近日对住房公积金多项业务政策进行了优化调整。调整内容覆盖了灵活就业人...