解决 cocosjs与安卓原生集成 崩溃问题
创始人
2024-05-26 07:24:42
0

版本:cocos2dx3.16

背景:公司需要把游戏整合到一个APP里面。于是打算通过activity切换的方式实现。但是游戏退出重进之后总会出现fatal 11线程报错。于是有了以下修改。我是底层小白。折腾了好久总算鼓捣出一个能用的版本。优化的地方应该有很多。不过就没去好好优化了。

准备步骤

1.java层。

添加activity互相调用。

以及cocos对应的activity的finish调用函数。(提供给C++去调用。由java自己调用在某些机子上会出现释放不正确的bug。导致线程无法释放)

屏蔽底层关闭进程的调用。(集成了只有一个进程。不能关闭)

2.C++层。

添加调用ScriptingCore清除的函数。(每次退出清空js代码)

添加SctiptingCore初始化中关于是否首次进入的初始化。(sc对象重新注册)

在director的mainloop中添加退出操作和判定。(由C++去调用java层的finish。)

3.js层。

退出时调用cc.director.end.(由js发起整个退出)

以下上修改代码。

1.java层。

Cocos2dxHelper.java文件。屏蔽terminateProcess函数内的调用。

Cocos2dxActivity.java文件。添加函数。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...