失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android应用开发中收集的异常日志解决方法记录

android应用开发中收集的异常日志解决方法记录

时间:2020-08-10 08:42:17

相关推荐

android应用开发中收集的异常日志解决方法记录

这里主要是列出开发中收集的一些错误日志,以及解决方案,仅供参考,也有待解决的问题

1,ListView中出现java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:260)at java.util.ArrayList.get(ArrayList.java:313)at android.widget.HeaderViewListAdapter.isEnabled(HeaderViewListAdapter.java:164)at android.widget.ListView.dispatchDraw(ListView.java:3374)at android.view.View.draw(View.java:16446)at android.widget.AbsListView.draw(AbsListView.java:4578)at android.view.View.updateDisplayListIfDirty(View.java:15387)at android.view.View.draw(View.java:16188)at android.view.ViewGroup.drawChild(ViewGroup.java:3735)at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3525)at android.view.View.updateDisplayListIfDirty(View.java:15379)at android.view.View.draw(View.java:16188)at android.view.ViewGroup.drawChild(ViewGroup.java:3735)at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3525)at android.view.View.draw(View.java:16446)at android.widget.ScrollView.draw(ScrollView.java:1739)

出现改异常根据日志堆栈看可以看到调用HeaderViewListAdapter.isEnabled出错

根据错误堆栈分享,都是关于Draw()方法错,猜测应该是视图刷新太频繁引起,比如不停的clear和notifyDataSetChanged引起,建议更新放就是减少不必要的notifyDataSetChanged

2,java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)at java.util.ArrayList.get(ArrayList.java:308)at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:225)at android.widget.AbsListView.obtainView(AbsListView.java:2420)at android.widget.ListView.measureHeightOfChildren(ListView.java:1270)at android.widget.ListView.onMeasure(ListView.java:1182)at ponent.MyListView.onMeasure(SourceFile)at android.view.View.measure(View.java:17605)at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5693)at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)at android.view.View.measure(View.java:17605)at android.widget.ScrollView.measureChildWithMargins(ScrollView

这个错误与1唯一的区别就是measureHeightOfChildren(int widthMeasureSpec, int startPosition, int endPosition,

int maxHeight, int disallowPartialChildPosition)方法出,这个方法最终是由onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法调用,如果大家使用ScrollView来嵌套ListView都会重写onMeasure方法保证列表正常显示,一般都是这样定义:

@Overridepublic void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);}

保证列表正常显示,但是也有另外的问题,就是带来性能上很大的消耗,如果频繁刷新列表,就是出这个bug,其实这里还没有特别好的解决方法,爆率一点就是直接catch调这个异常,那比较好的解放方法,就是不用这种方法介绍ListView的高度,我们自己一个工具类去计算ListView嵌套ScrollView高度的问题,然后就是减少不必要的刷新

3.android.content.res.AssetManager.finalize() timed out after 10 seconds

java.util.concurrent.TimeoutException: android.content.res.AssetManager.finalize() timed out after 10 secondsat android.content.res.AssetManager.destroy(Native Method)at android.content.res.AssetManager.finalize(AssetManager.java:533)at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:187)at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)at java.lang.Thread.run(Thread.java:841)

**4,**com.android.internal.os.BinderInternal$GcWatcher.finalize() timed out after 10 seconds

java.util.concurrent.TimeoutException: com.android.internal.os.BinderInternal$GcWatcher.finalize() timed out after 10 secondsat java.lang.Object.wait(Native Method)at java.lang.Object.wait(Object.java:401)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)at java.lang.Thread.run(Thread.java:841)

3和4 这个错误 目前主要出现在 android4.4和4.3,查找一些资料说是系统Android系统问题,具体还没解决方法,知道的朋友可以留言告知一声

5,‘Xiaomi/501/HM501:4.4.2/KOT49H/KHHCNBF2.0:user/release-keys’

Build fingerprint: 'Xiaomi/501/HM501:4.4.2/KOT49H/KHHCNBF2.0:user/release-keys'Revision: '43775'cpuAbi/cpuAbi2: 'armeabi-v7a#armeabi'pid: 5169, tid: 5183, name: Binder_2 >>> com.yinghuai.wallete <<<signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------registers:r0 00000000 r1 0000143f r2 00000006 r3 00000000r4 00000006 r5 00000000 r6 0000143f r7 0000010cr8 5d16d1a4 r9 60db8e90 sl 00000000 fp 60d9697cip 4195a000 sp 60d96850 lr 400a9301 pc 400b8244 cpsr 000a0010d0 0000000100000102 d1 57dbd27000000000d2 0000005000002700 d3 6093fdb000000000d4 0065006300690076 d5 007f0063002ed6 006f0063002e0065 d7 006f0074006ed8 0000000000000000 d9 0000000000000000d10 0000000000000000 d11 0000000000000000d12 0000000000000000 d13 0000000000000000d14 0000000000000000 d15 0000000000000000d16 ffffffffffffbfff d17 000000000001a369d18 0000000000000000 d19 00e000e000e000e0d20 0000000000000000 d21 0000000000000000d22 0000000000010000 d23 8000000000000000d24 0000000000000000 d25 8000000000000000d26 0000000000000000 d27 0000000000010000d28 8000000000000000 d29 0000000000000000d30 0000000000010000 d31 8000000000000000scr 80000012

这个错误目前主要出现在一些手机系统版4.4上,只能说坑,能升级系统就升级系统咯,我也很无赖

6,#00 pc 0000779a /system/lib/libsqlite.so

7985ca80 76daa6f8 [anon:libc_malloc]7985ca84 401e1e1b /system/lib/libandroid_runtime.so7985ca88 4160b62c /system/lib/libdvm.so7985ca8c 43340bc8 /dev/ashmem/dalvik-heap (deleted)7985ca90 000000267985ca94 000000017985ca98 4160b62c /system/lib/libdvm.so7985ca9c 415a34f3 /system/lib/libdvm.so7985caa0 000000007985caa4 415a35e1 /system/lib/libdvm.so........ ........#14 7985cad0 7985caec [stack:24858]7985cad4 000000007985cad8 000000267985cadc 401f2617 /system/lib/libandroid_runtime.so#15 7985cae0 000000007985cae4 000000007985cae8 40957de0 /system/lib/libsqlite.so7985caec 000000007985caf0 76dac6e8 [anon:libc_malloc]7985caf4 6d598800 /dev/ashmem/dalvik-LinearAlloc (deleted)7985caf8 76dac6e8 [anon:libc_malloc]

出现这个错误,九成是手机空间不足,写入本地数据库没做判断出错了,不能怪手机差,只能改代码了

如果觉得《android应用开发中收集的异常日志解决方法记录》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。