UnityAndroidIl2cppPatchDemo icon indicating copy to clipboard operation
UnityAndroidIl2cppPatchDemo copied to clipboard

这是Unity Android APP il2cpp热更完美解决方案的Demo。更新build_demo_apk里的Unity路径,执行即可一键重build Patch和apk。因为文件libunity是没有热更的,如unity版本有变化则热更不适用。

Results 27 UnityAndroidIl2cppPatchDemo issues
Sort by recently updated
recently updated
newest added

两三个项目碰到了这个问题,Unity版本含2017和2019 堆栈如下图(来自sin,thx) ![QQ图片20191220215822](https://user-images.githubusercontent.com/364050/71259923-8a330780-2374-11ea-89b6-fb31c57cb0a3.png) ![QQ图片20191220220332](https://user-images.githubusercontent.com/364050/71259936-915a1580-2374-11ea-9003-9b7009e3a32f.jpg) 有几个怀疑的点: 1. 多线程锁的问题,日志中发现在signal处理函数中,std::mutex会失效,全改成了pthread,看起来没问题 2. std::map 和 static link的问题, 把map换成了c版的,hash函数直接cache size取余。 新增了个分支, 做了些改动: https://github.com/noodle1983/UnityAndroidIl2cppPatchDemo-libboostrap/tree/crash_in_map_test 来自sin的反馈,暂时没有崩溃;另外还有加载场景卡死的问题,无日志,原因不明,未深入。 求测。

最近项目支持中遇到的, 日志 ``` il2cpp : [f1431494]shadow apk in fopen: /data/app/com.xxx.xxx-Ky_RNzCxgS6S8Frk2_85IA==/base.apk, fd:0x000000ca, file*: 0xed504108 il2cpp : [f1431494]fseek -> 0xed504108 at 0x00000000 with type 2 il2cpp : [f1431494]ftell -> 0xed504108 at 0x107fc46f...

> 这两部分,libil2cpp和assets目录,必须匹配(即需要在同一次打包中提取,可能有的变了,有的没变,增量方式只提取变化的部分)才能正常工作,不然Unity会在启动时崩溃。 请问为什么和assets不匹配会崩溃?另一种改MetadataLoader.cpp的so热更方案好像没这问题

堆栈: ![6$1Y22POES 5@4M4Y7P`AFP](https://user-images.githubusercontent.com/364050/63224954-03232680-c1fe-11e9-9075-6d0c27163c7a.png) 涉及机型: ![S_O11LK_DN9C{BE SJV ~71](https://user-images.githubusercontent.com/364050/63224968-349bf200-c1fe-11e9-99ee-96c5c1587bdb.png) 如果有朋友能有相关机型测试,或能重现,还望告知, 谢谢!

查看windows使用的压缩工具,能否替换成mac对应的mac zip压缩工具?

使用枚举类型扩展函数会导致E:CSharpException:ArgumentNullException: Value cannot be null 报错. 无法patch的C#代码如下: using UnityEngine; public class Test : MonoBehaviour { void Start() { TestEnum.A.TestFunc(); } } public enum TestEnum { A, B, C } public...

查了资料说是,这种问题,是从Android9开始,操作系统对minSdk进行了限制造成的 解决方法是,在gradle中调高minSdkVersion即可 但有时调高minSdkVersion也解决不了问题,原因是其它原因间接导致了minSdkVersion过低 比如多个模块在资源合并时,发生了错误,造成了minSdkVersion丢失,使得最终的minSdkVersion等于0。 检查了Unity工程本身,应该没有问题,因为直接用unity编辑器打包出来是不存在问题的。 所以想问下,咱们的这个工程里有没有设置 minSdkVersion的地方。我修改一下。 ![微信图片_20190924144249](https://user-images.githubusercontent.com/6624854/65487589-c2dc5580-ded9-11e9-9b11-06c76295cd3e.jpg)

因为我这里接入的sdk 资源里面会有apk文件 get_apk_path的时候会导致找不到正确的apk名字 虽然说会提示patch成功 但是不是正确的apk目录 这里解决方案是const char* TAIL = ".apk"; 这段改下过滤改成自己需要的那个

大神 我参考您的热更新方案 实现了谷歌强制要求64位后的热更新机制 但是某些机型上(三星 vivo)上更新后崩溃 初步判断是解压后的assets_bin_Data 没有生效 判断依据是 把解压路径下的libil2cpp.so换成包内自带的则不再崩溃 看logcat崩溃像是data与.so文件不匹配 线上项目出的问题 影响面较大 亟待解决 还望能提供解决思路 在此跪谢 我的qq826999910 如果方便 还望能qq联系

希望能够支持 unity 2022