robotium诡异的Instrumentation run failed due to 'java.lang.ClassNo
2014-11-27
在我学习Robotium自动化测试的过程中,遇到了Instrumentation run failed due to 'java.lang.ClassNotFoundException'错误。而具体的现象就是,我在手机上安装了App,一运行测试用例就会被卸载掉,同时报这个错误。我在网上查找了一下这个错误的原因,很多都是下面的这个原因造成的:
(1)首先确保你已经引入了JUnit测试框架,添加的办法是:右键点你的项目→选中“Build Path”→选中“Configure Build Path…”→在Libraries选项卡中点击“Add Library”(如下图)→ 添加JUnit4测试框架.
图一, 查看library
(2)记得在“Order and Export”选项卡中添加JUnit 4的依赖(如下图)。
图二,添加junit
现在问题来了:我按上面的方法查看了一下,我的Junit4引用正常啊,怎么还是有问题呢?于是就查看了一下AndroidManiFest.xml文件:
这个问题我查了很久,里面需要改的部分:
android:versionCode="32"
和
<</SPAN>instrumentation
我都修改的正确啊?实在没有办法,就放在那先休息了一周,后来在网上下载了一下例子,是搜索新闻的例子,安装运行后完全正常。于是就在那个App上玩了很久。感觉上手后,就回来解决这个问题了,经常各方面的尝试,才发现问题出在:
<</SPAN>uses-sdk android:targetSdkVersion="19" />
这一句话我本来以为是我的Android的版本呢,后来才发现不是,于是就用aapt查看了一下我的App安装包的信息:
<</SPAN>uses-sdk android:targetSdkVersion="17" android:minSdkVersion="14" android:maxSdkVersion="17"/>
然后保存,再次运行测试用例即可!要保持这个版本号和被测试的App版本号相同,这样就不会出现这个错误了。