最近在搞安卓下的音视频通讯聊天,模块工程均完成后,需要由cocos搭起可执行程序的框架,在使用cocos及第三方静态库的过程中遇到了一些问题,由于自己是首次接触COCOS,再加上COCOS自身的问题,搞了整整一天,也终于算是搞透了;

环境:eclipse+ADT、cocos2d-x-3.5

   一、cocos新工程的生成:   

进入E:\OpenSource\cocos2d-x-3.5\tools\cocos2d-console\bin

按住shift键,右键空白处,打开命令窗口

使用命令cocos new创建,如:
   cocos new -p com.example.mediagame -l cpp -d E:/CodeSpace/AVMeidaGame ProjectName

注:如果提示cocos 命令不存在,请先运行根目录下的setup.py文件(首先需要先按住        python.exe)或者直接打开此文件,一次添加相应的环境变量,然后重启explorer进程使环境变量生效即可。

   二、加载静态库

加载静态库(C++,接口类),该静态库也是基于cocos进行开发的,最终生成一个.a文件,过程不再累述,本人首先使用的如下参数(Android.mk):

LOCAL_SRC_FILES:= $(LOCAL_PATH)\libs\libClientPublic.a

LOCAL_STATIC_LIBRARIES := cocos2dx_static

LOCAL_WHOLE_STATIC_LIBRARIES := ClientPublic

在APP类代码中继承静态库中的一个父类,在ndk编译过程中报该父类的成员函数没有实现,问题很明显是该静态库没有正确加载成功所致,经查使用如下方式即可:

在include $(CLEAR_VARS)之前,加入如下命令,生成临时静态库

LOCAL_MODULE:= ClientPublic_static

LOCAL_MODULE_FILENAME := libClientPublic_static

LOCAL_SRC_FILES:=$(LOCAL_PATH)\libs\libClientPublic.a

include $(PREBUILT_STATIC_LIBRARY)

然后在下面适当位置加入加载此临时静态库即可

LOCAL_WHOLE_STATIC_LIBRARIES += ClientPublic_static

这时编译便OK了。

三、eclipse调试运行崩溃

在调试运行过程中出现莫名的崩溃问题,cocos的代码本人只是让APP类继承了静态库中的一个父类,完全没有理由会崩溃的呀,刚开始也是由于没有怀疑cocos自己生成的代码,所以也是浪费了大量的时间啊,最后通过adb抓取crash日志看到了程序崩溃点在Cocos生成的代码HelloWorldScene.cpp文件中使用了已经废弃的接口getContentSize(),调试发现该接口返回的值为无效值,导致在程序布局时为止无效,程序崩溃。

label->setPosition(Vec2(origin.x + visibleSize.width/2,

origin.y + visibleSize.height - label->getContentSize().height));

这里的代码大家自行修改掉即可。这个接口还真是坑人啊!

下面贴出adb抓入crash日志,并通过ndk-stack查看崩溃点的方法:

1,启动adb(D:\adt-bundle-windows\sdk\platform-tools),输入 adb logcat >d:\crash.log

2,启动通过eclipse启动apk,崩溃后在adb启动的cmd中按 ctrl+c,停止输出

3,启动ndk-stack (路径 D:\android-ndk-r9d)

命令格式为: ndk-stack -dmup d:\crash.log -sym obj文件路径

obj文件路径 为COCOS自建工程目录下的proj.android\obj\local\armeabi或者armeabi-v7a

ndk-stack输出建议输出至文本文件,这样看起来比在cmd中看起来方便

命令格式为: ndk-stack -dmup d:\crash.log -sym obj文件路径 >d:\crash_debug.log

本文出自 “大师兄” 博客,请务必保留此出处http://cto521.blog.51cto.com/9652841/1703098

转载于:https://my.oschina.net/superfather/blog/780215

eclipse+ADT使用第三方静态库及COCOS2d问题汇总相关推荐

  1. iOS架构-静态库.a之依赖第三方静态库.a的制作(8)

    上一篇讲的是静态库.framework 依赖第三方库,是通过Cocoapod 提供的第三方库.而有时我们会依赖第三方.a 或者.framework 的.那么怎么样来制作依赖第三方.a 或者.frame ...

  2. Android NDK 使用第三方静态库(转)

    源:Android NDK 使用第三方静态库 转载于:https://www.cnblogs.com/LittleTiger/p/4556382.html

  3. iOS静态库SDK制作(包含第三方静态库)

    本文来自简书,原文地址:http://www.jianshu.com/p/155a3cfb765e 前言 以下所涉及的框架和库只针对iOS而言,不确保在其他平台也适用. 最近由于公司业务需要,要求封装 ...

  4. iOS静态库SDK制作(包含支付宝支付、微信支付或其它第三方静态库)

    前言 以下所涉及的框架和库只针对iOS而言,不确保在其他平台也适用. 最近由于公司业务需要,要求封装一个支付SDK,需要用到微信支付和支付宝,之前做过的Framework没有依赖其他第三方的库所以比较 ...

  5. iOS开发中解决第三方静态库符号冲突的终极方案

    iOS开发中解决第三方静态库符号冲突的终极方案 背景 在iOS开发的时候,经常会使用各种第三方静态库,这些库内部可能会打包了相同的第三方库.那么在链接的时候就会发生符号冲突. 例如:A厂商提供的lib ...

  6. iOS中引入第三方静态库头文件找不到的问题解决方案

    在前几次项目中,因为要引入一些自己打包好的静态库,也就是第三方静态库,但是出了很多问题,有时会遇到莫名其妙的问题,明明有这个文件,但是就是显示头文件找不到.为了在以后能够快速处理这种问题,所以在这里做 ...

  7. android jni通过cmake使用第三方静态库和动态库

    google 官方现在推荐使用cmake来构建jni. 本人正好工作需要使用第三方的静态库和动态库,写此文 权当做个记录. 首先修改app的build.gradle文件 ndk {abiFilter ...

  8. android打包规范包含第三方库aar,Android Studio 打包AAR和第三方静态库(示例代码)

    需求 现在有一个第三方库libstatic_add.a和对应的头文件static.h,要求封装一个Module,该Module依赖这个静态库,要求打包的Module包含该静态库. 方案 创建Andro ...

  9. Android导入第三方静态库.a编译成动态库.so

    http://ikinglai.blog.51cto.com/6220785/1324985 在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库.如果有源码的话,可以直接跟你自己 ...

  10. android.bp编译生成so,Android导入第三方静态库.a编译成动态库.so

    在Android开发的时候,经常会使用到用c或c++编写的第三方的静态库.如果有源码的话,可以直接跟你自己的代码一去编译成动态库so,但是如果没有源码的话,你就必须在自己的动态库so里面将别人生成好的 ...

最新文章

  1. JavaScript七种非常经典的创建对象方式
  2. 【多线程】join()和detach()的用法
  3. opencv python 图像测试上采样(升采样)(cv2.pyrUp()) 下采样(cv2.pyrDown()) 池化 滑动窗口(BorderTypes)
  4. Windows与Linux区别1
  5. Angulary应用依赖里的platform-browser
  6. 手把手教你如何配置DBeaver对接FusionInsigth MRS Spark2x
  7. pandas数据合并与重塑_PANDAS 数据合并与重塑(concat篇)
  8. 知识蒸馏在广告系统中的应用(一)
  9. 7种JVM垃圾收集器特点,优劣势、及使用场景
  10. 百度地震了,也许早晚的事
  11. 使用Gogs搭建Git服务器
  12. 记忆的酒坛里,辛苦会酿成充实和幸福
  13. 计算机中丢失pbvm80,修复pbvm80.dll
  14. VS code 尝试在目标目录创建文件时发生一个错误
  15. SQL 删除重复数据,重复数据只保留ID最小的行
  16. html连接有道词典api,调用有道翻译API
  17. 解决vscode进行chrome调试时报错:localhost拒绝了我们的连接请求
  18. PostgreSQL 二进制安装
  19. Cnopendata国家基金项目数据简介
  20. 大突破!人类有望饿死癌细胞

热门文章

  1. 【转】SAP 各种记账凭证的更改冲销
  2. windows搭建wordpress方法-windows搭建wordpress教程
  3. 知道ip获取计算机密码,知道iP地址怎么获取密码
  4. 如何快速将qsv格式转换成mp4
  5. 常见的常微分方程的一般解法
  6. IJCAI 2022奖项公布:3篇杰出论文,南加大、耶拿大学等机构在列
  7. HDU 4475 Downward paths (推公式)
  8. iApp免费后台:云A后台
  9. [音乐] 逆转裁判1~4 追求 链接
  10. Win11开始菜单怎么改成Win10模式?