java–ANR输入调度在Android 4.4上超时

java–ANR输入调度在Android 4.4上超时,第1张

概述我发现了一个错误.这只是其中的一部分:-----pid6835at2014-08-0205:42:34-----Cmdline:lesa.smscallfakeJNI:CheckJNIisoff;workaroundsareoff;pins=0;globals=311DALVIKTHREADS:(mutexes:tll=0tsl=0tscl=0ghl=0)"main"prio=5tid=1SUSPENDED|gr

我发现了一个错误.这只是其中的一部分:

----- pID 6835 at 2014-08-02 05:42:34 -----Cmd line: lesa.smscallfakeJNI: CheckJNI is off; workarounds are off; pins=0; globals=311DALVIK THREADS:(mutexes: tll=0 tsl=0 tscl=0 ghl=0)"main" prio=5 tID=1 SUSPENDED| group="main" sCount=1 dsCount=0 obj=0x4205ae88 self=0x420494d8| sysTID=6835 nice=0 sched=0/0 cgrp=apps handle=1074774356| state=S schedstat=( 15933846549 2450231013 14646 ) utm=1372 stm=221 core=3at java.lang.String.<init>(String.java:~435)at java.lang.AbstractStringBuilder.toString(AbstractStringBuilder.java:645)at java.lang.StringBuilder.toString(StringBuilder.java:663)at java.lang.Throwable.toString(Throwable.java:360)at java.lang.Throwable.printstacktrace(Throwable.java:315)at java.lang.Throwable.printstacktrace(Throwable.java:282)at java.lang.Throwable.printstacktrace(Throwable.java:236)at androID.graphics.BitmapFactory.nativeDecodeStream(Native Method)at androID.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:620)at androID.graphics.BitmapFactory.decodeStream(BitmapFactory.java:596)at androID.graphics.BitmapFactory.decodeStream(BitmapFactory.java:634)at activity.ChiamataEffettuataActivity.getPhotoUri(ChiamataEffettuataActivity.java:127)at activity.ChiamataEffettuataActivity.onCreate(ChiamataEffettuataActivity.java:64)at androID.app.Activity.performCreate(Activity.java:5231)at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2201)at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)at androID.app.ActivityThread.access0(ActivityThread.java:144)at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)at androID.os.Handler.dispatchMessage(Handler.java:102)at androID.os.Looper.loop(Looper.java:212)at androID.app.ActivityThread.main(ActivityThread.java:5135)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:515)at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877)at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:693)at dalvik.system.NativeStart.main(Native Method)"Binder_3" prio=5 tID=15 NATIVE| group="main" sCount=1 dsCount=0 obj=0x453fe1e0 self=0x78e073c8| sysTID=7371 nice=0 sched=0/0 cgrp=apps handle=2034790416| state=S schedstat=( 5824738 6848644 39 ) utm=0 stm=0 core=3#00 pc 00020710 /system/lib/libc.so (__ioctl+8)#01 pc 0002d02b /system/lib/libc.so (ioctl+14)#02 pc 0001d75d /system/lib/libbinder.so (androID::IPCThreadState::talkWithDriver(bool)+140)#03 pc 0001de97 /system/lib/libbinder.so (androID::IPCThreadState::getAndExecuteCommand(bool)+18)#04 pc 0001df3b /system/lib/libbinder.so (androID::IPCThreadState::joinThreadPool(bool)+50)#05 pc 00021da5 /system/lib/libbinder.so#06 pc 0000ea5d /system/lib/libutils.so (androID::Thread::_threadLoop(voID*)+216)#07 pc 0004dde5 /system/lib/libandroID_runtime.so (androID::AndroIDRuntime::javaThreadShell(voID*)+68)#08 pc 0000e58f /system/lib/libutils.so#09 pc 0000d258 /system/lib/libc.so (__thread_entry+72)#10 pc 0000d3f0 /system/lib/libc.so (pthread_create+240)at dalvik.system.NativeStart.run(Native Method)"AsyncTask #5" prio=5 tID=14 WAIT| group="main" sCount=1 dsCount=0 obj=0x454062d0 self=0x7974f218| sysTID=6933 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=2037708400| state=S schedstat=( 942497 6026459 11 ) utm=0 stm=0 core=3at java.lang.Object.wait(Native Method)- waiting on <0x45406428> (a java.lang.VMThread) held by tID=14 (AsyncTask #5)at java.lang.Thread.parkFor(Thread.java:1205)at sun.misc.Unsafe.park(Unsafe.java:325)at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)at java.util.concurrent.linkedBlockingQueue.take(linkedBlockingQueue.java:410)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:841)"AsyncTask #4" prio=5 tID=13 WAIT| group="main" sCount=1 dsCount=0 obj=0x4537d608 self=0x719534c0| sysTID=6855 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1905604888| state=S schedstat=( 782915 2602712 11 ) utm=0 stm=0 core=0at java.lang.Object.wait(Native Method)- waiting on <0x4537d728> (a java.lang.VMThread) held by tID=13 (AsyncTask #4)at java.lang.Thread.parkFor(Thread.java:1205)at sun.misc.Unsafe.park(Unsafe.java:325)at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)at java.util.concurrent.linkedBlockingQueue.take(linkedBlockingQueue.java:410)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:841)"AsyncTask #3" prio=5 tID=12 WAIT| group="main" sCount=1 dsCount=0 obj=0x4537d478 self=0x719520d8| sysTID=6854 nice=0 sched=0/0 cgrp=apps handle=1905599792| state=S schedstat=( 579063 812344 9 ) utm=0 stm=0 core=3at java.lang.Object.wait(Native Method)- waiting on <0x4537d598> (a java.lang.VMThread) held by tID=12 (AsyncTask #3)at java.lang.Thread.parkFor(Thread.java:1205)at sun.misc.Unsafe.park(Unsafe.java:325)at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)at java.util.concurrent.linkedBlockingQueue.take(linkedBlockingQueue.java:410)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:841)"AsyncTask #2" prio=5 tID=11 WAIT| group="main" sCount=1 dsCount=0 obj=0x4537d228 self=0x71951110| sysTID=6853 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1905595752| state=S schedstat=( 813803 354219 11 ) utm=0 stm=0 core=0at java.lang.Object.wait(Native Method)- waiting on <0x4537d3c0> (a java.lang.VMThread) held by tID=11 (AsyncTask #2)at java.lang.Thread.parkFor(Thread.java:1205)at sun.misc.Unsafe.park(Unsafe.java:325)at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)at java.util.concurrent.linkedBlockingQueue.take(linkedBlockingQueue.java:410)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:841)"AsyncTask #1" prio=5 tID=10 WAIT| group="main" sCount=1 dsCount=0 obj=0x4537c920 self=0x7193dd18| sysTID=6852 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1905519696| state=S schedstat=( 1232138 19486042 17 ) utm=0 stm=0 core=1at java.lang.Object.wait(Native Method)- waiting on <0x4537cab8> (a java.lang.VMThread) held by tID=10 (AsyncTask #1)at java.lang.Thread.parkFor(Thread.java:1205)at sun.misc.Unsafe.park(Unsafe.java:325)at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2017)at java.util.concurrent.linkedBlockingQueue.take(linkedBlockingQueue.java:410)at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)at java.lang.Thread.run(Thread.java:841)"Binder_2" prio=5 tID=9 NATIVE| group="main" sCount=1 dsCount=0 obj=0x451f8698 self=0x7176fac0| sysTID=6848 nice=0 sched=0/0 cgrp=apps handle=1903622264| state=S schedstat=( 10446143 19545574 79 ) utm=1 stm=0 core=3#00 pc 00020710 /system/lib/libc.so (__ioctl+8)#01 pc 0002d02b /system/lib/libc.so (ioctl+14)#02 pc 0001d75d /system/lib/libbinder.so (androID::IPCThreadState::talkWithDriver(bool)+140)#03 pc 0001de97 /system/lib/libbinder.so (androID::IPCThreadState::getAndExecuteCommand(bool)+18)#04 pc 0001df3b /system/lib/libbinder.so (androID::IPCThreadState::joinThreadPool(bool)+50)#05 pc 00021da5 /system/lib/libbinder.so#06 pc 0000ea5d /system/lib/libutils.so (androID::Thread::_threadLoop(voID*)+216)#07 pc 0004dde5 /system/lib/libandroID_runtime.so (androID::AndroIDRuntime::javaThreadShell(voID*)+68)#08 pc 0000e58f /system/lib/libutils.so#09 pc 0000d258 /system/lib/libc.so (__thread_entry+72)#10 pc 0000d3f0 /system/lib/libc.so (pthread_create+240)at dalvik.system.NativeStart.run(Native Method)"Binder_1" prio=5 tID=8 NATIVE| group="main" sCount=1 dsCount=0 obj=0x451f84b8 self=0x7176f008| sysTID=6847 nice=0 sched=0/0 cgrp=apps handle=1903541152| state=S schedstat=( 9909064 13567240 78 ) utm=0 stm=0 core=3#00 pc 00020710 /system/lib/libc.so (__ioctl+8)#01 pc 0002d02b /system/lib/libc.so (ioctl+14)#02 pc 0001d75d /system/lib/libbinder.so (androID::IPCThreadState::talkWithDriver(bool)+140)#03 pc 0001de97 /system/lib/libbinder.so (androID::IPCThreadState::getAndExecuteCommand(bool)+18)#04 pc 0001df3b /system/lib/libbinder.so (androID::IPCThreadState::joinThreadPool(bool)+50)#05 pc 00021da5 /system/lib/libbinder.so#06 pc 0000ea5d /system/lib/libutils.so (androID::Thread::_threadLoop(voID*)+216)#07 pc 0004dde5 /system/lib/libandroID_runtime.so (androID::AndroIDRuntime::javaThreadShell(voID*)+68)#08 pc 0000e58f /system/lib/libutils.so#09 pc 0000d258 /system/lib/libc.so (__thread_entry+72)#10 pc 0000d3f0 /system/lib/libc.so (pthread_create+240)at dalvik.system.NativeStart.run(Native Method)"FinalizerWatchdogDaemon" daemon prio=5 tID=7 TIMED_WAIT| group="system" sCount=1 dsCount=0 obj=0x451f3bc8 self=0x7164b358| sysTID=6845 nice=0 sched=0/0 cgrp=apps handle=1902426032| state=S schedstat=( 469635 7594584 14 ) utm=0 stm=0 core=3at java.lang.VMThread.sleep(Native Method)at java.lang.Thread.sleep(Thread.java:1013)at java.lang.Thread.sleep(Thread.java:995)at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:248)at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:258)at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:212)at java.lang.Thread.run(Thread.java:841)"FinalizerDaemon" daemon prio=5 tID=6 WAIT| group="system" sCount=1 dsCount=0 obj=0x451f3a70 self=0x7164aa28| sysTID=6844 nice=0 sched=0/0 cgrp=apps handle=1902423680| state=S schedstat=( 24290203 25912501 258 ) utm=2 stm=0 core=3at java.lang.Object.wait(Native Method)- waiting on <0x4204f7d8> (a java.lang.ref.ReferenceQueue)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)"ReferenceQueueDaemon" daemon prio=5 tID=5 WAIT| group="system" sCount=1 dsCount=0 obj=0x451f3908 self=0x7164a180| sysTID=6843 nice=0 sched=0/0 cgrp=apps handle=1902421464| state=S schedstat=( 7857403 2493957 162 ) utm=0 stm=0 core=0at java.lang.Object.wait(Native Method)- waiting on <0x4204f700> at java.lang.Object.wait(Object.java:364)at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:130)at java.lang.Thread.run(Thread.java:841)"Compiler" daemon prio=5 tID=4 VMWAIT| group="system" sCount=1 dsCount=0 obj=0x451f3818 self=0x71649b20| sysTID=6842 nice=0 sched=0/0 cgrp=apps handle=1902418136| state=S schedstat=( 146295056 73149476 1499 ) utm=9 stm=5 core=3#00 pc 00021a8c /system/lib/libc.so (__futex_syscall3+8)#01 pc 0000f04c /system/lib/libc.so (__pthread_cond_timeDWait_relative+48)#02 pc 0000f0ac /system/lib/libc.so (__pthread_cond_timeDWait+64)#03 pc 00076d13 /system/lib/libdvm.so#04 pc 00057815 /system/lib/libdvm.so#05 pc 0000d258 /system/lib/libc.so (__thread_entry+72)#06 pc 0000d3f0 /system/lib/libc.so (pthread_create+240)at dalvik.system.NativeStart.run(Native Method)"Signal Catcher" daemon prio=5 tID=3 RUNNABLE| group="system" sCount=0 dsCount=0 obj=0x451f3720 self=0x74066780| sysTID=6841 nice=0 sched=0/0 cgrp=apps handle=1946576184| state=R schedstat=( 12132237 6684635 28 ) utm=0 stm=1 core=3at dalvik.system.NativeStart.run(Native Method)"GC" daemon prio=5 tID=2 VMWAIT| group="system" sCount=1 dsCount=0 obj=0x451f3640 self=0x716401f8| sysTID=6839 nice=0 sched=0/0 cgrp=apps handle=1899029304| state=S schedstat=( 1629483125 206446831 793 ) utm=150 stm=12 core=3#00 pc 00021a90 /system/lib/libc.so (__futex_syscall3+12)#01 pc 0000f04c /system/lib/libc.so (__pthread_cond_timeDWait_relative+48)#02 pc 0000f0ac /system/lib/libc.so (__pthread_cond_timeDWait+64)#03 pc 00055785 /system/lib/libdvm.so (dvmrelativeConDWait(pthread_cond_t*, pthread_mutex_t*, long long, int)+24)#04 pc 000756cb /system/lib/libdvm.so#05 pc 00057815 /system/lib/libdvm.so#06 pc 0000d258 /system/lib/libc.so (__thread_entry+72)#07 pc 0000d3f0 /system/lib/libc.so (pthread_create+240)at dalvik.system.NativeStart.run(Native Method)NATIVE THREADS:"zygote" sysTID=6846 nice=0 sched=0/0 cgrp=apps| state=S schedstat=( 267760 3741614 5 ) utm=0 stm=0 core=0"GL updater" sysTID=7480 nice=-10 sched=0/0 cgrp=apps| state=S schedstat=( 14861196 12149217 394 ) utm=0 stm=1 core=0----- end 6835 ---------- pID 999 at 2014-08-02 05:42:34 -----Cmd line: system_serverJNI: CheckJNI is off; workarounds are off; pins=5; globals=2142 (plus 322 weak)

该类的方法是这样的:

private Bitmap getPhotoUri(String IDContact) {        try {            Cursor cur = getApplicationContext().getContentResolver().query(                    ContactsContract.Data.CONTENT_URI,                    null,                    ContactsContract.Data.CONTACT_ID + "=" + IDContact + " AND "                            + ContactsContract.Data.MIMETYPE + "='"                            + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE + "'", null,                    null);            if (cur != null) {                if (!cur.movetoFirst()) {                    return null; // no photo                }            } else {                return null; // error in cursor process            }        } catch (Exception e) {            e.printstacktrace();            return null;        }        Bitmap bitmap = null;        if (Build.VERSION.SDK_INT < 14) {            Uri person = ContentUris.withAppendedID(ContactsContract.Contacts.CONTENT_URI, Long.parseLong(IDContact));            try {                bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.withAppendedpath(person, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY));            } catch (fileNotFoundException e) {            } catch (IOException e) {            }        } else {             Uri my_contact_Uri = Uri.withAppendedpath(ContactsContract.Contacts.CONTENT_URI, String.valueOf(IDContact));             inputStream photo_stream = ContactsContract.Contacts.openContactPhotoinputStream(getContentResolver(), my_contact_Uri, true);             BufferedinputStream buf = new BufferedinputStream(photo_stream);             bitmap = BitmapFactory.decodeStream(buf);             try {                buf.close();            } catch (IOException e) {            }        }        return bitmap;    }

在具有AndroID 4.4的手机上发现了这个问题.在许多其他情况下,在其他 *** 作系统版本上,该方法可以正常工作.

解决方法:

对于那些仍然遇到此类错误问题的人来说,这就是我的结论:

经过大量的搜索和尝试我在网上找到的一切,我自己修复了它.我使用DDMS来查看我的设备上运行的当前线程,并看到有一个ASyncTask运行了很长时间但从未停止过.

它似乎正在访问主线程正在访问的’某事’,并且在访问了’某事’一段时间后,两个线程碰撞导致应用程序挂起导致ANR异常.

我所做的是删除ASyncTask,而是在应用程序启动时(启动时)执行“一次性” *** 作,确保它将运行一次,而不是更多.

我真的建议使用DDMS来查看当前线程,因为ANR通常是由同步/并发问题引起的.

如果您收到此错误,请随时与我联系.

总结

以上是内存溢出为你收集整理的java – ANR输入调度在Android 4.4上超时全部内容,希望文章能够帮你解决java – ANR输入调度在Android 4.4上超时所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1114831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存