菜鸟Cocos2D-X遇到的坑

来源:互联网 发布:举高高网络语什么意思 编辑:程序博客网 时间:2024/05/05 14:31

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就好.

0 0
原创粉丝点击