android.jvmti.cts.JvmtiHostTest911#testJvmti Fail

[DESCRIPTION]
D/ModuleListener: ModuleListener.testFailed(android.jvmti.cts.JvmtiHostTest911#testJvmti, junit.framework.AssertionFailedError: [android.jvmti.cts.JvmtiRunTestBasedTest#testRunTest java.lang.IllegalStateException: ###################
### Same thread ###
###################
 这项测试失败主要是因为手机里面的zygote进程创建进程时,所属进程中的线程不符合Google的要求。
一般是由客户自己加的功能引起的。
[SOLUTION]

 排查方法:
host_log_***************.txt中
在java.lang.IllegalStateException中的的下面会有一大串的字符串,找到类似下面的log.出现第一个+号的即为
客户手机里面多出来的线程。
– ReferenceQueueDaemon
+ MEntryThread
– <not printed>
+
———
– Signal Catcher
+ ReferenceQueueDaemon

+ <not printed>
———
可以用下面的命令查是是否手机里面有这个线程. 如果log中显示的是另外的线程名,下面命令中的grep 后面的也需修改.
ps -AT | grep MEntryThread
 可以发现手机里面的确是有很多线程,这个一般由第三方库引起的问题,需要回退版本查看修改点.
ps -AT | grep MEntryThread 如果没有这线程,则是OK的版本。不排除有多几个线程的情况,需要一一排查。
一般第三方会修复这个问题,修复这个问题后,请确保
【CTS】CtsOsHostTestCases–android.os.cts.ProcfsHostTests#testProcTidStat
这个测试项也可以正常通过。

作者: RESSRC

个人资源站

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.