我的crashletics日志中出现以下错误,我知道此错误与数组索引有关,我知道如何解决它,
但是,我的问题是,如何从下面的日志中找到这种情况的发生原因,因为日志中的所有提示都是通用的,并且代码库很大,因此很难在任何地方检查断点,并且由于在某些种族条件下很少发生这种情况,因此谁能为我提供有关如何找出正确方向的线索?
Fatal Exception: java.lang.IndexOutOfBoundsException: Index: 38, Size: 38
at java.util.ArrayList.get + 437(ArrayList.java:437)
at android.widget.ArrayAdapter.getItem + 385(ArrayAdapter.java:385)
at android.widget.ArrayAdapter.createViewFromResource + 441(ArrayAdapter.java:441)
at android.widget.ArrayAdapter.getView + 407(ArrayAdapter.java:407)
at android.widget.Spinner.makeView + 808(Spinner.java:808)
at android.widget.Spinner.layout + 756(Spinner.java:756)
at android.widget.Spinner.onLayout + 718(Spinner.java:718)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.LinearLayout.setChildFrame + 1791(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutHorizontal + 1780(LinearLayout.java:1780)
at android.widget.LinearLayout.onLayout + 1546(LinearLayout.java:1546)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.LinearLayout.setChildFrame + 1791(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical + 1635(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout + 1544(LinearLayout.java:1544)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren + 323(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout + 261(FrameLayout.java:261)
at android.widget.ScrollView.onLayout + 2492(ScrollView.java:2492)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.support.v4.view.ViewPager.onLayout + 1775(ViewPager.java:1775)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.RelativeLayout.onLayout + 1080(RelativeLayout.java:1080)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.LinearLayout.setChildFrame + 1791(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical + 1635(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout + 1544(LinearLayout.java:1544)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren + 323(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout + 261(FrameLayout.java:261)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.LinearLayout.setChildFrame + 1791(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical + 1635(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout + 1544(LinearLayout.java:1544)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren + 323(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout + 261(FrameLayout.java:261)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.LinearLayout.setChildFrame + 1791(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical + 1635(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout + 1544(LinearLayout.java:1544)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.widget.FrameLayout.layoutChildren + 323(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout + 261(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout + 945(DecorView.java:945)
at android.view.View.layout + 20854(View.java:20854)
at android.view.ViewGroup.layout + 6401(ViewGroup.java:6401)
at android.view.ViewRootImpl.performLayout + 2954(ViewRootImpl.java:2954)
at android.view.ViewRootImpl.performTraversals + 2641(ViewRootImpl.java:2641)
at android.view.ViewRootImpl.doTraversal + 1785(ViewRootImpl.java:1785)
at android.view.ViewRootImpl$TraversalRunnable.run + 7825(ViewRootImpl.java:7825)
at android.view.Choreographer$CallbackRecord.run + 911(Choreographer.java:911)
at android.view.Choreographer.doCallbacks + 723(Choreographer.java:723)
at android.view.Choreographer.doFrame + 658(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run + 897(Choreographer.java:897)
at android.os.Handler.handleCallback + 789(Handler.java:789)
at android.os.Handler.dispatchMessage + 98(Handler.java:98)
at android.os.Looper.loop + 164(Looper.java:164)
at android.app.ActivityThread.main + 6944(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run + 327(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main + 1374(ZygoteInit.java:1374)
我的日志低于
Fatal Exception: java.lang.IndexOutOfBoundsException
Index: 38, Size: 38
java.util.ArrayList.get + 437 (ArrayList.java:437)
android.widget.ArrayAdapter.getItem + 385 (ArrayAdapter.java:385)
android.widget.ArrayAdapter.createViewFromResource + 441 (ArrayAdapter.java:441)
com.android.internal.os.ZygoteInit.main + 1374 (ZygoteInit.java:1374)
#0
Picasso-Idle
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
com.squareup.picasso.Utils$PicassoThread.run + 411 (Utils.java:411)
#1
FinalizerDaemon
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#2
OkHttp Http2Connection
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#3
GoogleApiHandler
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.HandlerThread.run + 65 (HandlerThread.java:65)
#4
Crashlytics Exception Handler1
dalvik.system.VMStack.getThreadStackTrace (VMStack.java)
java.lang.Thread.getAllStackTraces + 1586 (Thread.java:1586)
com.crashlytics.android.core.CrashlyticsController.writeSessionEvent + 1340 (CrashlyticsController.java:1340)
com.crashlytics.android.core.CrashlyticsController.writeFatal + 1027 (CrashlyticsController.java:1027)
com.crashlytics.android.core.CrashlyticsController.access$500 + 69 (CrashlyticsController.java:69)
com.crashlytics.android.core.CrashlyticsController$7.call + 328 (CrashlyticsController.java:328)
com.crashlytics.android.core.CrashlyticsController$7.call + 321 (CrashlyticsController.java:321)
java.util.concurrent.FutureTask.run + 266 (FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor$Worker.run + 636 (ThreadPoolExecutor.java:636)
io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun + 75 (ExecutorUtils.java:75)
io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run + 30 (BackgroundPriorityRunnable.java:30)
java.lang.Thread.run + 764 (Thread.java:764)
#5
Picasso-Dispatcher
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.HandlerThread.run + 65 (HandlerThread.java:65)
#6
RxIoScheduler-1 (Evictor)
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#7
RxIoScheduler-8
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#8
Picasso-Idle
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
com.squareup.picasso.Utils$PicassoThread.run + 411 (Utils.java:411)
#9
AsyncTask #2
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#10
OkHttp Http2Connection
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#11
main
java.lang.Object.wait (Object.java)
java.util.concurrent.FutureTask.get + 205 (FutureTask.java:205)
com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait + 41 (CrashlyticsBackgroundWorker.java:41)
com.crashlytics.android.core.CrashlyticsController.handleUncaughtException + 321 (CrashlyticsController.java:321)
com.crashlytics.android.core.CrashlyticsController$6.onUncaughtException + 301 (CrashlyticsController.java:301)
com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException + 42 (CrashlyticsUncaughtExceptionHandler.java:42)
java.lang.ThreadGroup.uncaughtException + 1068 (ThreadGroup.java:1068)
java.lang.Thread.dispatchUncaughtException + 1953 (Thread.java:1953)
#12
RxIoScheduler-3
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#13
Picasso-Stats
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.HandlerThread.run + 65 (HandlerThread.java:65)
#14
pool-2-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#15
RxIoScheduler-4
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#16
Okio Watchdog
java.lang.Object.wait (Object.java)
okio.AsyncTimeout.awaitTimeout + 361 (AsyncTimeout.java:361)
okio.AsyncTimeout$Watchdog.run + 312 (AsyncTimeout.java:312)
#17
Picasso-Idle
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
com.squareup.picasso.Utils$PicassoThread.run + 411 (Utils.java:411)
#18
queued-work-looper
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.HandlerThread.run + 65 (HandlerThread.java:65)
#19
OkHttp ConnectionPool
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#20
RxIoScheduler-6
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#21
FinalizerWatchdogDaemon
java.lang.Thread.sleep (Thread.java)
java.lang.Thread.run + 764 (Thread.java:764)
#22
Queue
java.lang.Object.wait (Object.java)
java.util.concurrent.PriorityBlockingQueue.take + 548 (PriorityBlockingQueue.java:548)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation + 197 (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get + 236 (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 65 (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 46 (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask + 1087 (ThreadPoolExecutor.java:1087)
java.lang.Thread.run + 764 (Thread.java:764)
#23
ReferenceQueueDaemon
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#24
OkHttp ConnectionPool
java.lang.Object.wait (Object.java)
okhttp3.ConnectionPool$1.run + 67 (ConnectionPool.java:67)
java.util.concurrent.ThreadPoolExecutor.runWorker + 1162 (ThreadPoolExecutor.java:1162)
java.lang.Thread.run + 764 (Thread.java:764)
#25
AsyncTask #3
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#26
Queue
java.lang.Object.wait (Object.java)
java.util.concurrent.PriorityBlockingQueue.take + 548 (PriorityBlockingQueue.java:548)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation + 197 (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get + 236 (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 65 (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 46 (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask + 1087 (ThreadPoolExecutor.java:1087)
java.lang.Thread.run + 764 (Thread.java:764)
#27
pool-1-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#28
pool-3-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#29
Answers Events Handler1
java.lang.Object.wait (Object.java)
java.util.concurrent.ThreadPoolExecutor$Worker.run + 636 (ThreadPoolExecutor.java:636)
io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun + 75 (ExecutorUtils.java:75)
io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run + 30 (BackgroundPriorityRunnable.java:30)
java.lang.Thread.run + 764 (Thread.java:764)
#30
Queue
java.lang.Object.wait (Object.java)
java.util.concurrent.PriorityBlockingQueue.take + 548 (PriorityBlockingQueue.java:548)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation + 197 (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get + 236 (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 65 (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 46 (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask + 1087 (ThreadPoolExecutor.java:1087)
java.lang.Thread.run + 764 (Thread.java:764)
#31
RxIoScheduler-5
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#32
pool-4-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#33
OkHttp m.liyathabara.com
com.android.org.conscrypt.NativeCrypto.SSL_read (NativeCrypto.java)
com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read + 766 (OpenSSLSocketImpl.java:766)
okio.Okio$2.read + 139 (Okio.java:139)
okio.AsyncTimeout$2.read + 237 (AsyncTimeout.java:237)
okio.RealBufferedSource.request + 67 (RealBufferedSource.java:67)
okio.RealBufferedSource.require + 60 (RealBufferedSource.java:60)
okhttp3.internal.http2.Http2Reader.nextFrame + 95 (Http2Reader.java:95)
okhttp3.internal.http2.Http2Connection$ReaderRunnable.execute + 566 (Http2Connection.java:566)
okhttp3.internal.NamedRunnable.run + 32 (NamedRunnable.java:32)
java.lang.Thread.run + 764 (Thread.java:764)
#34
Queue
java.lang.Object.wait (Object.java)
java.util.concurrent.PriorityBlockingQueue.take + 548 (PriorityBlockingQueue.java:548)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation + 197 (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get + 236 (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 65 (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 46 (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask + 1087 (ThreadPoolExecutor.java:1087)
java.lang.Thread.run + 764 (Thread.java:764)
#35
Queue
java.lang.Object.wait (Object.java)
java.util.concurrent.PriorityBlockingQueue.take + 548 (PriorityBlockingQueue.java:548)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation + 197 (DependencyPriorityBlockingQueue.java:197)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get + 236 (DependencyPriorityBlockingQueue.java:236)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 65 (DependencyPriorityBlockingQueue.java:65)
io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take + 46 (DependencyPriorityBlockingQueue.java:46)
java.util.concurrent.ThreadPoolExecutor.getTask + 1087 (ThreadPoolExecutor.java:1087)
java.lang.Thread.run + 764 (Thread.java:764)
#36
Measurement Worker
java.lang.Object.wait (Object.java)
com.google.android.gms.measurement.internal.zzbs.run + 24 (Unknown Source:24)
#37
RxIoScheduler-2
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#38
FrameMetricsAggregator
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.HandlerThread.run + 65 (HandlerThread.java:65)
#39
RxIoScheduler-7
java.lang.Object.wait (Object.java)
okhttp3.internal.http2.Http2Stream.waitForIo + 577 (Http2Stream.java:577)
okhttp3.internal.http2.Http2Stream.takeResponseHeaders + 143 (Http2Stream.java:143)
okhttp3.internal.http2.Http2Codec.readResponseHeaders + 125 (Http2Codec.java:125)
okhttp3.internal.http.CallServerInterceptor.intercept + 88 (CallServerInterceptor.java:88)
okhttp3.internal.http.RealInterceptorChain.proceed + 147 (RealInterceptorChain.java:147)
okhttp3.internal.connection.ConnectInterceptor.intercept + 45 (ConnectInterceptor.java:45)
okhttp3.internal.http.RealInterceptorChain.proceed + 147 (RealInterceptorChain.java:147)
okhttp3.internal.http.RealInterceptorChain.proceed + 121 (RealInterceptorChain.java:121)
okhttp3.internal.cache.CacheInterceptor.intercept + 93 (CacheInterceptor.java:93)
okhttp3.internal.http.RealInterceptorChain.proceed + 147 (RealInterceptorChain.java:147)
okhttp3.internal.http.RealInterceptorChain.proceed + 121 (RealInterceptorChain.java:121)
okhttp3.internal.http.BridgeInterceptor.intercept + 93 (BridgeInterceptor.java:93)
okhttp3.internal.http.RealInterceptorChain.proceed + 147 (RealInterceptorChain.java:147)
okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept + 125 (RetryAndFollowUpInterceptor.java:125)
okhttp3.internal.http.RealInterceptorChain.proceed + 147 (RealInterceptorChain.java:147)
okhttp3.internal.http.RealInterceptorChain.proceed + 121 (RealInterceptorChain.java:121)
okhttp3.logging.HttpLoggingInterceptor.intercept + 212 (HttpLoggingInterceptor.java:212)
okhttp3.internal.http.RealInterceptorChain.proceed + 147 (RealInterceptorChain.java:147)
okhttp3.internal.http.RealInterceptorChain.proceed + 121 (RealInterceptorChain.java:121)
com.npc.marry.api.retrofit.RetrofitAPIService$CustomInterceptor.intercept + 223 (RetrofitAPIService.java:223)
okhttp3.internal.http.RealInterceptorChain.proceed + 147 (RealInterceptorChain.java:147)
okhttp3.internal.http.RealInterceptorChain.proceed + 121 (RealInterceptorChain.java:121)
okhttp3.RealCall.getResponseWithInterceptorChain + 200 (RealCall.java:200)
okhttp3.RealCall.execute + 77 (RealCall.java:77)
com.google.firebase.perf.network.FirebasePerfOkHttpClient.execute + 17 (Unknown Source:17)
retrofit2.OkHttpCall.execute + 180 (OkHttpCall.java:180)
retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall.execute + 91 (ExecutorCallAdapterFactory.java:91)
com.npc.marry.api.server_api.AppServicesImpl.handleResponse + 128 (AppServicesImpl.java:128)
com.npc.marry.api.server_api.AppServicesImpl.access$000 + 101 (AppServicesImpl.java:101)
com.npc.marry.api.server_api.AppServicesImpl$15.call + 356 (AppServicesImpl.java:356)
com.npc.marry.api.server_api.AppServicesImpl$15.call + 353 (AppServicesImpl.java:353)
rx.Observable.unsafeSubscribe + 10256 (Observable.java:10256)
rx.internal.operators.OperatorSubscribeOn$SubscribeOnSubscriber.call + 100 (OperatorSubscribeOn.java:100)
rx.internal.schedulers.CachedThreadScheduler$EventLoopWorker$1.call + 230 (CachedThreadScheduler.java:230)
rx.internal.schedulers.ScheduledAction.run + 55 (ScheduledAction.java:55)
java.util.concurrent.Executors$RunnableAdapter.call + 457 (Executors.java:457)
java.lang.Thread.run + 764 (Thread.java:764)
#40
Picasso-refQueue
java.lang.Object.wait (Object.java)
java.lang.ref.ReferenceQueue.remove + 188 (ReferenceQueue.java:188)
com.squareup.picasso.Picasso$CleanupThread.run + 613 (Picasso.java:613)
#41
AsyncTask #1
java.lang.Object.wait (Object.java)
java.lang.Thread.run + 764 (Thread.java:764)
#42
Timer-2
java.lang.Object.wait (Object.java)
java.util.TimerThread.run + 505 (Timer.java:505)
答案 0 :(得分:0)
我会看这行
android.widget.ArrayAdapter.getItem + 385 (ArrayAdapter.java:385)
它表明您的ArrayAdapter中发生错误。
因为项目中没有很多适配器,所以我认为这是跟踪错误的合理起点
答案 1 :(得分:0)
可能您可以通过传递索引/位置来检查适配器或活动中试图获取商品的位置