libluajit静态库是LuaJIT项目的组成部分,提供了一个高度优化的、兼容标准Lua的实现,以静态链接库的形式集成到应用程序中,便于开发和部署。
在使用cocos2d Lua 3.17.2开发的项目中遇到了一个棘手的问题。当这个项目的Android版本从29升级到30后,在某些特定设备上(如出厂预装了 Android 11 Version 30 的手机)运行时会黑屏,无法正常启动。
最初认为问题出在将应用的 Android 版本号提升至30导致的兼容性问题。尝试将版本降回29后再升到30,发现除了特定设备外其他测试机均无异常表现。这表明升级Android系统版本确实影响了部分设备上的运行情况,但并非唯一原因。
进一步怀疑是否与权限设置相关,并进行了动态权限加载实验,结果依旧无法解决问题。随后注意到代码执行卡在 `cc.FileUtils:getInstance():purgeCachedEntries()` 这一行后停止响应,推测可能涉及到了Android 11的存储机制变更问题。尝试修改cocos调用android存储函数的方式但未见成效。
最终,在调试过程中遇到了“bad light userdata pointer”错误提示,并联想到luagit可能存在兼容性问题。查阅相关信息确认了arm64架构下 Android 11 的 luagit 不兼容情况后,决定直接从git源码中获取最新版的luagit进行编译替换项目中的lib文件(静态库)。完成这一系列操作之后,游戏终于在目标设备上正常运行起来。
经过这次问题解决过程,明确了升级Android版本号可能导致特定硬件上的应用不兼容,并且需要特别关注新系统下的存储权限和相关库文件的适配性。