小编eKK*_*o82的帖子

从Native C/C++代码调用JAVA类成员

我正在编写一个OpenGL C/C++应用程序,我通过Android NDK,JNI支持移植到Android.我在执行从本机发出信号的JAVA回调代码时遇到了困难.

这是代码:

class OpenGLSurfaceView extends GLSurfaceView 
{
…
     public OpenGLSurfaceView(Context context, int deviceWidth, int deviceHeight) 
    {
        super(context);
        nativeObj = new NativeLib();
        mRenderer = new OpenGLRenderer(context, nativeObj, deviceWidth, deviceHeight);
        setRenderer(mRenderer);
        setRenderMode(RENDERMODE_WHEN_DIRTY);
    }
…
    private void CallBack()
    {
        // force redraw
        requestRender();
    }
}


class OpenGLRenderer implements GLSurfaceView.Renderer 
{
    …
public void onSurfaceCreated(GL10 gl, EGLConfig config) 
    {
        nativeObj.init(…);
        nativeObj.cachejavaobject(JNIEnv *env, jobject obj); // for caching obj on native side
    }

    public void onSurfaceChanged(GL10 gl, int w, int h) 
    {
    } …
Run Code Online (Sandbox Code Playgroud)

java-native-interface android android-ndk

6
推荐指数
1
解决办法
1万
查看次数