博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在cocos2dx里访问/互调android里的activity方法/变量
阅读量:4957 次
发布时间:2019-06-12

本文共 1690 字,大约阅读时间需要 5 分钟。

 activity里有如下定义: 

 
public void cppCall_nonStatic_logsth(){  //非静态方法          Log.i("cppCall_nonStatic", "test2~~~~!!!");      }        public static Object cppCall_logsth(){  //静态方法          Log.i("cppCall", "test~~~~!!!");          return activity;      }
AppDelegate.cpp里: 
加上预定义(for android)
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)  #include 
#include
#include
#if 1 #define LOG_TAG "JniHelper" #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) #else #define LOGD(...) #endif #endif
关键代码片段: 
 
JniMethodInfo minfo;      jobject jobj;      bool b = JniHelper::getStaticMethodInfo(minfo,           "com/loy/puzzles/Puzzles",  //类路径          "cppCall_logsth",   //静态方法名          "()Ljava/lang/Object;");   //括号里的是参数,后面的是返回值。      if (!b) {          LOGD("JniHelper::getStaticMethodInfo error...");      }else{          jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID);      }            JniHelper::getMethodInfo(minfo,          "com/loy/puzzles/Puzzles",           "cppCall_nonStatic_logsth",           "()V");      if(!b){          LOGD("JniHelper::getMethodInfo error...");      }else{          LOGD("ready to invoke method...");          minfo.env->CallVoidMethod(jobj, minfo.methodID);      }

 

最终LOGCAT打印日志如下: 
12-2 12:46:33.891: D/JniHelper(2008): testing~~~ 
12-2 12:46:33.891: I/cppCall(2008): test~~~~!!! 
12-2 12:46:33.891: D/JniHelper(2008): ready to invoke method... 
12-2 12:46:33.891: I/cppCall_nonStatic(2008): test2~~~~!!! 
12-2 12:46:33.891: D/JniHelper(2008): testing over~~~ 
即表示调用成功。

转载于:https://www.cnblogs.com/ben-android/p/3454098.html

你可能感兴趣的文章
【原】iOS中KVC和KVO的区别
查看>>
OMAPL138学习----DSPLINK DEMO解析之SCALE
查看>>
IoC的基本概念
查看>>
restframework CBV试图的4种方式
查看>>
大图居中,以1920px为例
查看>>
Python3 图片转字符画
查看>>
[C陷阱和缺陷] 第7章 可移植性缺陷
查看>>
人需要治愈
查看>>
linux中configure文件默认执行结果所在位置
查看>>
Spring MVC例子
查看>>
jmeter 断言
查看>>
玩玩小爬虫——抓取时的几个小细节
查看>>
error C4996: 'fopen'
查看>>
Windows向Linux上传文件夹
查看>>
20180104-高级特性-Slice
查看>>
6个SQL Server 2005性能优化工具介绍
查看>>
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
day14 Python 内置函数、匿名函数和递归函数
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>