cocos2d-x安卓中Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp等jni中文件被优化

原创 2013年11月27日 20:45:28

cocos2d-x游戏新项目中搭android的在jni调用是出现以下问题:

1.Cocos2dxRenderer中的 调用jni接口Cocos2dxRenderer.nativeOnResume()时挂了,提示的错误是:Cocos2dxRenderer_nativeOnResume  UnsatisfiedLinkError

第一步,看看Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp是否被编译成目标文件.o,在libarmeabi.a中是可以很清晰地看到这个Java_org_cocos2dx_lib_Cocos2dxRenderer.o。因此这个是存在的。

第二步,已知这个文件中另外一个jni调用的本地方法nativeInit,但这个方法在main.cpp中被定义;在代码中是能被正常调用的;把这个定义的方法挪到文件Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp中,代码调用时也是挂了。

第三步,有可能这个文件没有被链接如动态库中,但是这个.o文件确实在libarmeabi.a中,在最后被连接入游戏的动态库中。

第四步,基于以上的试验结果,有可能是这个目标文件.o最后被优化,并没有被链接入游戏的动态库中。试验可以在Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp定义一个函数,注意这个方法不在extern“C”中,然后为不被优化掉,因此在main.cpp调用这个函数,这样应该就不会被优化。代码一跑,终于好了。。。

第五步,jni中还有文件TouchesJni.cpp也一样是被优化了,没有最后链接入游戏的动态库了。

【玩转cocos2d-x之四】cocos2d-x怎么实现跨平台

cocos2d-x到底是这样实现跨平台的呢?这里以Win32和Android为例。 1.跨平台项目目录结构 先看一下一个项目创建后的目录结构吧!这还是以HelloCpp为例。   ...
  • jackyvincefu
  • jackyvincefu
  • 2013年10月11日 08:36
  • 12580

安卓真机调试,程序没有进入到Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit入口函数里?

用eclipse编译通过生成了.so 然后用真机通过USB进行调试 debug as [armeabi] Install        : libcocos2dcpp.so => libs/ar...
  • jiangjianzi5819
  • jiangjianzi5819
  • 2017年01月02日 22:15
  • 450

cocos2dx入门二之游戏循环

代码执行流程: Cocos2dxRenderer.onDrawFrame()->Cocos2dxRenderer.nativeRender()->Java_org_cocos2dx_lib_Coco...
  • yixiaoqingyuz
  • yixiaoqingyuz
  • 2012年12月22日 19:22
  • 8003

cocos2d-x游戏开发(四)游戏主循环

欢迎转载:http://blog.csdn.net/fylz1125/article/details/8518737 终于抽时间把这个游戏写完了。由于没有自拍神器,所以把它移植到了Andro...
  • fylz1125
  • fylz1125
  • 2013年01月19日 02:57
  • 13885

cocosEditor错误汇总

现在使用的2.0版本,发现cce文件在 10-03 17:02:58.434    7404-7445/org.ccj.game.hello E/cocos2d-x assert﹕ D:\work\...
  • xzongyuan
  • xzongyuan
  • 2014年10月03日 17:06
  • 1185

简析 cocos2d-x Android 调用启动过程

一、启动activtiy        AndroidManifest.xml里配置了启动activity为AppActivity       ...
  • xueerpp
  • xueerpp
  • 2016年05月27日 14:57
  • 4662

cocos2dx入门一之引擎初始化

代码执行流程: Cocos2dxRenderer.onSurfaceCreated()-> Cocos2dxRenderer.nativeInit()->main.cpp.Java_org_coco...
  • yixiaoqingyuz
  • yixiaoqingyuz
  • 2012年12月22日 19:22
  • 4822

cocos2d-x_Android应用启动调用过程简析

调用org.cocos2dx.cpp.AppActivity AppActivity是位于proj.android/src下,是开发者类(即开发者自定义的类),继承自org.cocos2dx.l...
  • strawberry2013
  • strawberry2013
  • 2014年11月14日 12:22
  • 3384

cocos2dx下离屏渲染遇到的问题

opengl状态错乱导致的渲染问题,定位、总结、反思!
  • dizuo
  • dizuo
  • 2015年04月08日 10:32
  • 2298

No implementation found for native Lorg/cocos2dx/lib/Cocos2dxLuaJavaBridge;.callLuaFunctionWithStrin

No implementation found for native Lorg/cocos2dx/lib/Cocos2dxLuaJavaBridge;.callLuaFunctionWithStrin...
  • xiaweiliang90
  • xiaweiliang90
  • 2014年12月09日 14:03
  • 1102
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2d-x安卓中Java_org_cocos2dx_lib_Cocos2dxRenderer.cpp等jni中文件被优化
举报原因:
原因补充:

(最多只允许输入30个字)