Android用のカメラを利用したアプリをjavaで作成しています。
連続して撮影を行うとプレビュー画面を開く・閉じる際に偶にアプリが落ちます。
(プレビュー画面には、テキストビューメッセージを表示しています。)
落ちる際には、以下のcarshログが出力されています。
「java.lang.IndexOutOfBoundsException: 1, 1」は何かの配列にデータを格納しているが、存在し無い配列番号を参照しようとしてして出ているエラーであることは理解できました。
また、ログは上から順番にエラーの原因に近い事も理解できました。
PIDでログを遡上るとカメラの処理に関係するのではないかというところまで予想を付けました。
(毎回カメラの処理とは限らないようなのですが・・・。)
ですが、以上の内容で「どのように調査すればよいのか」、「なぜ配列が関係するのか」が、わからずに悩んでおります。
考え方のヒント・ログの読み方等でも結構ですので、ご教授いただけると幸いです。
宜しくお願い致します。
ログ******************************************************************************
--------- beginning of crash
[日付 時間] 14857-14857/[パッケージ名] E/AndroidRuntime: FATAL EXCEPTION: main
Process: [パッケージ名], PID: 14857
java.lang.IndexOutOfBoundsException: 1, 1
at android.text.PackedIntVector.getValue(PackedIntVector.java:75)
at android.text.DynamicLayout.getLineTop(DynamicLayout.java:1001)
at android.text.Layout.getLineBottom(Layout.java:1637)
at android.widget.Editor.drawHardwareAcceleratedInner(Editor.java:1913)
at android.widget.Editor.drawHardwareAccelerated(Editor.java:1854)
at android.widget.Editor.onDraw(Editor.java:1794)
at android.widget.TextView.onDraw(TextView.java:7230)
at android.view.View.draw(View.java:20226)
at android.view.View.updateDisplayListIfDirty(View.java:19101)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
at android.view.View.updateDisplayListIfDirty(View.java:19061)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
at android.view.View.updateDisplayListIfDirty(View.java:19061)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
at android.view.View.updateDisplayListIfDirty(View.java:19061)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4317)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4290)
at android.view.View.updateDisplayListIfDirty(View.java:19061)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:686)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:692)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:801)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:3332)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3129)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2498)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1473)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7215)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1004)
at android.view.Choreographer.doCallbacks(Choreographer.java:816)
at android.view.Choreographer.doFrame(Choreographer.java:751)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:990)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:280)
at android.app.ActivityThread.main(ActivityThread.java:6706)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/12 00:10
2020/03/23 14:07