加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2dx下使用JNI技术调用jar包里面的一些方法遇到的一些问题及

发布时间:2020-12-14 21:10:11 所属栏目:百科 来源:网络整理
导读:情况一: JniHelper.h头文件无法找到 方法: 需要添加附加包含目录即可解决问题。具体操作步骤如下:右击项目----c/c++----常规----附加包含目录----添加JniHelper.h所在的路径即可。 此时可能还会遇到找不到jni.h和jni_md.h的问题,解决方案为在%JAVA_HOME%

情况一:JniHelper.h头文件无法找到

方法:需要添加附加包含目录即可解决问题。具体操作步骤如下:右击项目---->c/c++---->常规---->附加包含目录---->添加JniHelper.h所在的路径即可。此时可能还会遇到找不到jni.h和jni_md.h的问题,解决方案为在%JAVA_HOME%/include/下找到 jni.h,在%JAVA_HOME%/include/win32/下找到jni_md.h,复制到“Visual Studio目录/VC/include/”下,即可解决问题。

情况二:报类似的错。用那个函数,总是报错errorLNK2019:无法解析的外部符号"__declspec(dllimport)public:staticbool__cdeclcocos2d::JniHelper::getStaticMethodInfo(structcocos2d::JniMethodInfo_&,charconst*,charconst*)"(__imp_?getStaticMethodInfo@JniHelper@cocos2d@@SA_NAAUJniMethodInfo_@2@PBD11@Z),该符号在函数"public:staticclasscocos2d::CCScene*__cdeclHelloWorld::scene(void)"(?scene@HelloWorld@@SAPAVCCScene@cocos2d@@XZ)中被引用

方法:#if(CC_TARGET_PLATFORM==CC_PLATFORM_ANDROID)
******************

JNI的代码

***************
#endif

一定要加上平台判断语句。否则会出现以下bug。

情况三:提示在CCPlatformDefine.h文件中log.h: no such file or directory,即log.h找不到。

方法:1.修改Android.mk文件配置,添加如下语句 LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog 2.修改CCPlatformDefine.h文件 注释掉#include "log.h",添加#include "ALog.h"。 3.新建ALog.h文件,写入以下内容,并将其放置于与CCPlatformDefine.h所在的同一目录下。


最后想说的是:编写供c++调用的java方法,如果是第三方jar里面的方法的话,建议用Handler去触发,让其处于在UI线程中运行,否则可能出错。


Cocos新手学习必备源码啊,大量本人写的的源码(有些商业的淘宝店木有放出来,可以私聊),ARPG,动作射击,闯关益智,可学习可运营 个人淘宝店,适合新手,我还可以做技术支持,帮助换皮,带新手等https://shop141567464.taobao.com/?spm=a313o.7775905.1998679131.d0011.pzUIU4

不懂的可以加我的QQ群: 239982941(cocos2d-x 3.x学习群)欢迎你的到来哦,看了博文给点脚印呗,谢谢啦~~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读