Intereting Posts
Использование flash с веб-сайтом android Android: Когда клавиатура всплывает, макет невидим. Как я могу это решить? Как установить разрешение файла для MODE_WORLD_READABLE Проблема с списком файлов Android 4.4 Как я могу объединить два растровых изображения один над другим в выбранной точке на первом изображении в android? Текст Android TextView не будет центрировать Как записывать звук только в том случае, если он выше определенного уровня звука? Android: разница между getCount () и getChildCount () в ListView Периодическое отслеживание местоположения переднего плана на Android Я только что создал небольшой проект Android в Eclipse, какие файлы я должен добавить к управлению версиями? Поместить представления в макет Android с автоматическим разрывом строки Драйвер USB-устройства для HTC OneVX (отладка USB) Работа с Android / Robolectric – активированная активность возвращает null на getResource Удаленная отладка Android не работает в Windows 7 Обновлен до AppCompat v22.1.0 и теперь получает IllegalArgumentException: AppCompat не поддерживает текущие функции темы

Почему андроид рассматривает приложение в ANR, когда он находится в ожидании петлителя

В моем журнале logcat для Android я вижу:

01-02 02:01:46.523 E/ActivityManager( 459): ANR in com.android.phone (com.android.phone/.InCallScreen) 

И затем, когда я перехожу в /data/anr/traces.txt, я вижу

 Cmd line: com.android.phone DALVIK THREADS: (mutexes: tll=0 tsl=0 tscl=0 ghl=0) "main" prio=5 tid=1 NATIVE | group="main" sCount=1 dsCount=0 obj=0x410f7508 self=0x40eeeb68 | sysTid=649 nice=0 sched=0/0 cgrp=apps handle=1075429168 | schedstat=( 0 0 0 ) utm=1361 stm=314 core=1 #00 pc 0000dac0 /system/lib/libc.so (epoll_wait+12) #01 pc 00014899 /system/lib/libutils.so (android::Looper::pollInner(int)+96) #02 pc 00014b01 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+104) #03 pc 00063aeb /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) #04 pc 0001df30 /system/lib/libdvm.so (dvmPlatformInvoke+112) #05 pc 0004d1fb /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+394) #06 pc 00038f4d /system/lib/libdvm.so (dvmCheckCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+8) #07 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:125) at android.os.Looper.loop(Looper.java:124) at android.app.ActivityThread.main(ActivityThread.java:4921) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) at dalvik.system.NativeStart.main(Native Method) 

Мой вопрос в том, почему андроид считает, что приложение находится в ANR, когда трассировка стека показывает главный поток в Looper, ожидающий сообщения? Это кажется мне нормальным. Я понимаю, что андроид показывает ANR, когда основной поток загружает что-то / делает длинную операцию. Но кажется нормальным, что он ждет сообщения. Пожалуйста, поменяйте меня, если я ошибаюсь.

Я нашел этот интересный отчет об ошибке:

http://code.google.com/p/android/issues/detail?id=41755

Краткое изложение состоит в том, что, как представляется, в коде оболочки NDK имеется ошибка, которая означает, что события, поступающие из нескольких источников, могут вызывать ANR. Это точно соответствует моему варианту использования. У меня есть приложение NDK с работой, происходящей в фоновом потоке и геймпаде, и ANR, который я получаю, точно совпадает с тем, который вы описали, и тем, который был указан в отчете об ошибке.

Это похоже на вашу настройку?

Обновление: дополнительная информация: http://ps3computing.blogspot.co.uk/2012/12/anr-application-not-responding.html

После применения исправления, описанного в его блоге, я, похоже, не могу снова показать манифест ANR. Это не значит, что прошло, хотя …