cocos2dx游戏通过luajit加密脚本支持64位的心得

因谷歌要求8月1日后上架的游戏必须支持64位,折腾了我很久,搜索了很久,从以为很难 → 以为很容易 → 失败、迷茫 → 停滞不前、绝望 → 继续坚持、转换搜索思路 → 试验成功,或许这就是每次达到彼岸的必经之路,过程很辛酸,结果还欣慰,现在总结经验,让大家少走弯路和挫折吧。
分两个部分来讲吧,这样会没那么乱……

-----------------------------------------------------------AndroidStudio开始--------------------------------------------------------
1,确保你的游戏工程是在cocos项目里的frameworks\runtime-src,这样确保在编译的时候找到cocos的lib库,或许有其他办法,望大牛们指点一下。
2,在android studio的工程项目里找到app→gradle,打开它,在android模块里添加

    externalNativeBuild {
        ndkBuild {
            path file('jni/Android.mk')
        }
        if (PROP_BUILD_TYPE == 'ndk-build') {
            ndkBuild {
                path "jni/Android.mk"
            }
        }
        else if (PROP_BUILD_TYPE == 'cmake') {
            cmake {
                path "../../../../CMakeLists.txt"
            }
        }
    }
    //我用的是ndk-build的方法,PROP_BUILD_TYPE是自己定义的一个常量,这里会根据Android.mk的内容进行相关的so打包

3,在defaultConfg模块里添加

		ndk {
			 //arm64-v8a就是64位的库,有啥不懂就搜索自己研究
            abiFilters "arm64-v8a"//"armeabi"
        }

4,这样设置后看看
在这里插入图片描述
红框中的是否为灰,为灰的话继续看下一步!

5,按照下面的图片步骤去做,我就是这样成功了
在这里插入图片描述
------------------------------------------------------------AndroidStudio结束----------------------------------------------------------

--------------------------------------------------------------LuaJit开始-----------------------------------------------------------------
1,去官网下载回来,然后解压。
2,在src目录下的lj_arch.h文件的前面添加一句#define LUAJIT_ENABLE_GC64(表示开启64位模式编码)
3,对src目录下的msvcbuild.bat文件进行编辑:将第一个 @set DASMFLAGS= 这一行设置为 @set DASMFLAGS=-D WIN -D FFI -D P64
4,续上将其中的vm_x86.dasc设置为vm_x64.dasc 设置这个就代表用这个x64的文件进行lua编码转换(这里划重点!!!之前一直打所谓的64位加密,因为没改这个,导致总是提示语法错误,因为并不是真的64位加密)
5,利用vs2015或以上版本的x64命令行工具(记住哦vs有两个命令行工具 一个是x86的 一个是x64的)打开这个文件夹路径,然后运行msvcbuild.bat进行编译生成lua51.dll和luajit.exe,记得连同同目录下的jit文件夹一起复制使用,有关怎样使用自己查啦!
6,通过上一步生成的工具,替换响应的文件或自己改动原来的加密逻辑,进行lua加密。
--------------------------------------------------------------LuaJit结束----------------------------------------------------------------

好了,你看到这里就可以尝试按照一般的打包逻辑生成支持64位的apk包,运行正常表示你成功啦!我已经尽量打细节都说清楚了,如果还有不明白的或者错误的地方,欢迎提问或指正!

文中引用内容有:
将应用代码由eclipse导入Android studio的方法NDK-Build和Cmake两种方法(以android_serialport_api为例) - maogefff - 博客园
https://www.cnblogs.com/maogefff/p/7819880.html

关于tolua在arm64位的加密 - sun19880421的博客 - CSDN博客
https://blog.csdn.net/sun19880421/article/details/68070696

十分感谢这两个大神分享的经验,使得我终于达成64位的支持任务!

------2019.10.14-------
最终还是砍掉了luajit,因为真的不兼容!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值