菜鸟Cocos2D-X遇到的坑

3 篇文章 0 订阅
2 篇文章 0 订阅

libc fatal signal 11 sigsegv at 0x0000002c code=1

Google了一下, 发现 Fatal signal 11的人很多, 但是很少有0x0000002c这个问题的. 于是我并没有按照搜索结果里面的去做, 而是尝试找自己可能犯下的SB问题.

然后发现在InterfaceJNI.cpp中

...
JniHelper::getStaticMethodInfo(minfo, "app/testproj/conflux/MainActivity", "getInstance", "()Ljava/lang/Object;");
...

把包名写错了. 更正即可.

可能有帮助的链接
http://stackoverflow.com/questions/27702391/ndk-problems-with-vm-aborting-and-fatal-signal-11-sigsegv-at-0xdeadd00d-cod
http://discuss.cocos2d-x.org/t/cocos2d-x-3-2-issue-using-a-plugin-in-a-dedicated-thread/16966

使用javah生成Java头文件

Eclipse里面配置一个ExternalTools
1

配置如图
1

Location
你的javah.exe路径

Working Directory
点击Browse Workspace, 选择到你的工程的src下面.

Arguments
网上找到的结果, 很多人使用的参数都不一样, 有的使用很多参数, 这里讲解正常生成必要参数Eclipse图方便所需参数.

首先在命令行直接javah, 或者Eclipse里面你不填Arguments, 得到如下

D:\Projects\TheConflux\TheConflux\src>javah
用法:
  javah [options] <classes>
其中, [options] 包括:
  -o <file>                输出文件 (只能使用 -d 或 -o 之一)
  -d <dir>                 输出目录
  -v  -verbose             启用详细输出
  -h  --help  -?           输出此消息
  -version                 输出版本信息
  -jni                     生成 JNI 样式的标头文件 (默认值)
  -force                   始终写入输出文件
  -classpath <path>        从中加载类的路径
  -cp <path>               从中加载类的路径
  -bootclasspath <path>    从中加载引导类的路径
<classes> 是使用其全限定名称指定的
(例如, java.lang.Object)。
  • 必备参数: <classes>. 填写你的主Activity类全名, 如笔者的是 app.forgedfun.projectconflux.TheConflux
  • 方便Eclipse: 输出路径, 笔者的路径是是\jni. 于是 -d ${workspace_loc:/ProjectConflux/jni}

保存运行就好了, 然后你的jni目录下就能看到新的头文件了.

有的人可能遇到这个错误, 是因为你的类文件是utf-8编码的, 网上有很多方法.
错误: 编码GBK的不可映射字符
但是笔者比较懒, 要生成的时候用Notepad++转一下ANSI, 生成, 然后再用Notepad++转回UTF-8就好.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值