mklimek / frame-video-view

Less issues with VideoView
Other
63 stars 19 forks source link

TextureViewImpl.removeVideo throws NullPointerException #15

Closed mkutlev closed 7 years ago

mkutlev commented 7 years ago

NullPointerException is thrown while destroying the resources. The problem happens if frameVideoView.setup is not called (when the videoView is not used).

In this method placeholderView is null and it causes the problem.

private void removeVideo() {
        this.placeholderView.setVisibility(0);
        this.release();
}

E/AndroidRuntime: FATAL EXCEPTION: main Process: my.app.android, PID: 30161 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setVisibility(int)' on a null object reference at com.mklimek.frameviedoview.TextureViewImpl.removeVideo(TextureViewImpl.java:147) at com.mklimek.frameviedoview.TextureViewImpl.onSurfaceTextureDestroyed(TextureViewImpl.java:103) at android.view.TextureView.destroySurface(TextureView.java:237) at android.view.TextureView.destroyHardwareResources(TextureView.java:340) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:216) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyResources(ThreadedRenderer.java:223) at android.view.ThreadedRenderer.destroyHardwareResources(ThreadedRenderer.java:211) at android.view.ViewRootImpl.destroyHardwareResources(ViewRootImpl.java:965) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1802) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1487) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7450) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920) at android.view.Choreographer.doCallbacks(Choreographer.java:695) at android.view.Choreographer.doFrame(Choreographer.java:631) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:158) at android.app.ActivityThread.main(ActivityThread.java:7229) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

mklimek commented 7 years ago

I've fixed the bug. Try version 1.3.2

mkutlev commented 7 years ago

The bug is fixed. Thanks.