伙计们,
在我的Android Java代码中,我有一个声明如下:
public class SurfacePanelNative extends SurfaceView implements SurfaceHolder.Callback { ... private static native void native_render(); }
在我的本机代码中,我将函数声明为:
void native_render(JNIEnv *env,jobject javaSurface) { ANativeWindow* window = ANativeWindow_fromSurface(env,javaSurface); ... }
看一下网上的一些例子,似乎该函数应声明为:
void native_render(JNIEnv *env,jclass clazz) { ... }
我想知道哪个宣言是正确的.
我在想第一个是正确的.否则,我没有足够的信息来获取javaSurface.
如果有人能够对此有所了解,我将不胜感激.
预先感谢您的帮助.
问候,
彼得
解决方法
如果方法是静态的,则为jclass,否则为jobject.如果您使用javah,正如JNI设计者所期望的那样,您将始终得到正确的答案.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。