使用JNI,android从C ++调用Java方法

时间:2015-06-23 05:13:47

标签: java android c++ methods java-native-interface

这是我的ImageTargets.java代码

package com.qualcomm.QCARSamples.ImageTargets;

public void changeIsDisplayed()
    {
        if(isDisplayed)
            isDisplayed = false;
        else
        {
            isDisplayed = true;
        }
    }

我正在尝试从此代码调用ImageTargets.cpp中的changeIsDisplayed:

JNIEXPORT void JNICALL
Java_com_qualcomm_QCARSamples_ImageTargets_ImageTargetsRenderer_renderFrame(JNIEnv *env, jobject obj)
{
    jclass javaClass = env->FindClass("com/qualcomm/QCARSamples/ImageTargets/ImageTargets");
     jmethodID method = env->GetMethodID(javaClass, "changeIsDisplayed", "()V");
     env->CallVoidMethod(obj,method);
}

但它一直在崩溃,并说有一个致命的jni错误。我似乎无法弄明白。这是从C ++调用java函数的最佳方法吗?

编辑:错误是 6347-6734 / com.qualcomm.QCARSamples.ImageTargets E / AndroidRuntime:FATAL EXCEPTION:GLThread 1231

编辑:抱歉缺乏信息和迟到的回复。我似乎很难进行错误检查,因为这是通过android让我更难记录它。我希望你明白。

编辑:错误检查时,它在FindClass方法行崩溃。有什么想法吗?

0 个答案:

没有答案