大佬教程收集整理的这篇文章主要介绍了cocos2d-x-3.x-026 移植cocos的jnihelper及用法说明,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
typedef struct JniMethodInfo_ {
JNIEnv * env;
jclass classID;
jmethodID methodID;
} JniMethodInfo;
class JniHelper {
public:
static void setJavaVM(JavaVM *javaVM);
static JavaVM* getJavaVM();
static JNIEnv* getEnv();
static bool setClassLoaderFrom(jobject activityInstancE); static bool getStaticMethodInfo(JniMethodInfo &methodinfo,const char *className,const char *methodName,const char *paramCodE); static bool getMethodInfo(JniMethodInfo &methodinfo,const char *paramCodE); static jmethodID loadclassMethod_methodID; static jobject classloader;
private:
static JNIEnv* cacheEnv(JavaVM* jvm);
static bool getMethodInfo_DefaultClassLoader(JniMethodInfo &methodinfo,const char *paramCodE); static JavaVM* _psJavaVM;
};
“`
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm,void* reserved) {
// other code
// …
JniHelper::setJavaVM(vm); return JNI_VERSION_1_4;
}
“`
在这个native的实现里,调用JniHelper::setClassLoaderFrom(obj);
jint xxx(JNIEnv* env,jclass clazz,jobject obj) {
JniHelper::setClassLoaderFrom(obj);
return 0;
}
“`
int getDPIJNI()
{
JniMethodInfo t;
jint ret = -1;
if (JniHelper::getStaticMethodInfo(t,"org/cocos2dx/lib/Cocos2dxHelper","getDPI","()I")) {
ret = t.env->CallStaticIntMethod(t.classID,t.methodID);
t.env->deleteLocalRef(t.classID);
}
return ret;
}
以上是大佬教程为你收集整理的cocos2d-x-3.x-026 移植cocos的jnihelper及用法说明全部内容,希望文章能够帮你解决cocos2d-x-3.x-026 移植cocos的jnihelper及用法说明所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。