检查Android应用程序的ConcurrentModificationException

时间:2017-04-26 02:08:14

标签: android multithreading concurrency

如何编写一个持续关闭并打开Android应用程序的测试,直到出现运行时异常(显示堆栈跟踪)?我需要这个来重现我们应用程序启动时出现的罕见并发问题。

1 个答案:

答案 0 :(得分:0)

好的,我想通了:

for i in {1..100}; do adb -d shell am force-stop XXX && adb shell am start -n XXX/.YYY && sleep 10s; done

您需要使用applicationId中的build.gradle替换XXX,并使用AndroidManifest.xml中的默认活动替换YYY。

从另一个终端运行:

adb -d logcat ZZZ:E *:S

其中ZZZ是您的应用程序名称。这将显示类似于

的堆栈跟踪
E/ZZZ(19737): Caused by: java.util.ConcurrentModificationException
E/ZZZ(19737):   at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573)