目前,我正在使用jni代码中的android_view_surface_getsurface()从java surface对象获取本机surface。这似乎适用于android 4.4设备,但不适用于操作系统较旧版本的设备,例如我用4.1测试过的设备,系统库中似乎缺少android view surface getsurface符号。
在所有设备上都有有效的方法吗?(或至少4+)。如果没有,如何仅对较旧的操作系统版本执行此操作?
谢谢,
萨沙
最佳答案
你已经把它作为公共api了。
/**
* Return the ANativeWindow associated with a Java Surface object,
* for interacting with it through native code. This acquires a reference
* on the ANativeWindow that is returned; be sure to use ANativeWindow_release()
* when done with it so that it doesn't leak.
*/
ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface);
请参见此处的示例:Application crashing due to use of ANativeWindow API