私は上記のエラーを受けて、実際にはなぜそうは考えていません。私はカメラアプリを開発していますが、今はエラーが発生します。おそらくtextureView
が原因のエラーです。これは例外です:Java - ビュー階層を作成した元のスレッドのみがそのビューに触れることができます。例外?
example.com.view.CameraActivity : Only the original thread that created a view hierarchy can touch its views.
java.lang.RuntimeException
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:7101)
at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:1137)
at android.view.ViewGroup.invalidateChild(ViewGroup.java:5254)
at android.view.View.invalidateInternal(View.java:13669)
at android.view.View.invalidate(View.java:13633)
at android.view.View.invalidateParentIfNeeded(View.java:13822)
at android.view.TextureView.setTransform(TextureView.java:483)
at example.com.data.BasicFragment.configureTransform(BasicFragment.java:850)
at example.com.data.BasicFragment.access$100(BasicFragment.java:69)
at example.com.data.BasicFragment$2.onOpened(BasicFragment.java:182)
at android.hardware.camera2.impl.CameraDeviceImpl$1.run(CameraDeviceImpl.java:134)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:173)
at android.os.HandlerThread.run(HandlerThread.java:61)
03-20 20:07:18.531 25889-26077/example.com.kamera E/AndroidRuntime: FATAL EXCEPTION: CameraBackground
Process: example.com.kamera, PID: 25889
android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:7103)
at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:1137)
at android.view.ViewGroup.invalidateChild(ViewGroup.java:5254)
at android.view.View.invalidateInternal(View.java:13669)
at android.view.View.invalidate(View.java:13633)
at android.view.View.invalidateParentIfNeeded(View.java:13822)
at android.view.TextureView.setTransform(TextureView.java:483)
at example.com.data.BasicFragment.configureTransform(BasicFragment.java:850)
at example.com.data.BasicFragment.access$100(BasicFragment.java:69)
at example.com.data.BasicFragment$2.onOpened(BasicFragment.java:182)
at android.hardware.camera2.impl.CameraDeviceImpl$1.run(CameraDeviceImpl.java:134)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:173)
at android.os.HandlerThread.run(HandlerThread.java:61)
このエラーの原因を知っていますか?行850
は、次のものです。mTextureView.setTransform(matrix);
。ここでエラーが発生するのはなぜですか?
コードを一切使わずに、エラーメッセージの内容を繰り返すことができます。ビューを作成したスレッドとは異なるスレッドからビューを修正しようとしました。 – Henry