ARCore如何释放使用acquireCameraImage获取的图像

时间:2018-08-06 09:17:16

标签: android arcore

我正在尝试从ARCore相机捕获图像,但是连续执行此操作会返回异常(com.google.ar.core.exceptions.ResourceExhaustedException),并且在JNI级别上也可以使用相同的日志

E: cpu_image_manager.cc:102 Failed to acquire new image, due to too many images acquired but not released.
E: status.cc:155 ArStatusErrorSpace::AR_ERROR_RESOURCE_EXHAUSTED: 

因此,我试图找出如何释放图像,正如ARCore ref所指出的那样,使用C(Caller is responsible for later releasing the image with ArImage_release)很容易,但是在Java中,{{ 1}}对象。是因为GC旨在释放资源本身吗?

1 个答案:

答案 0 :(得分:2)

通过

获取了Image对象之后
final Image image = frame.acquireCameraImage()

您可以释放内存调用:

image.close();
  

使用适用于Android 1.4的最新版本的ARCore SDK,因为在1.3 image.close() had a bug之前,并且从frame.acquireCameraImage()收到了引用

参考:Image.close() reference

相关问题