We've run into an interesting issue with one of our Vuforia apps when deploying to Android with "Development Build" unchecked. We are running Unity 4.3.0 and Vuforia 2.8.7. At the start of the app we disable QCAR using the following code:
qcar = GameObject.FindObjectOfType(typeof(QCARBehaviour)) as QCARBehaviour; qcar.enabled = false;
At a certain point in the app we fire up QCAR when we're ready for the AR content to be viewed. Everything works fine, including sending the app to background and resuming the app. The problem only occurs when we open an external weblink using this code:
Loading the web content works as expected, however when returning to the app we get a black screen when trying to load QCAR along with the following error:
[3/7/14, 9:53:45 AM] : 03-07 09:52:22.240: E/Camera(18920): Error 100 [3/7/14, 9:57:14 AM] : 03-07 09:52:05.125: E/Surface(18920): queueBuffer: error queuing buffer to SurfaceTexture, -19 03-07 09:52:05.125: E/[EGL-ERROR](18920): void __egl_platform_queue_buffer(mali_base_ctx_handle, egl_buffer*):1301: unable to queue buffer (0x65ba4898) 03-07 09:52:05.135: E/[EGL-ERROR](18920): void __egl_platform_dequeue_buffer(egl_surface*):1610: failed to dequeue buffer from native window (0x5acfb050); err = -19, buf = 0x0,max_allowed_dequeued_buffers 3
We are able to correct the problem by adding a button that clears the buffers, but this is a hack/workaround for now to show a solution for the issue using the following code:
GL.Clear(false, true, new Color(0.0f, 0.0f, 0.0f, 1.0f));
Does anyone have any suggestions as to why this is occuring and how we could solve the issue? This does not affect "Development" builds, only release builds. It is isolated to the Android platform, as the iOS version has no issues with the same code in this cross-platform Vuforia app.