robotium诡异的Instrumentation run failed due to 'java.lang.ClassNo
2014-11-27
在我學習Robotium自動化測試的過程中,遇到了Instrumentation run failed due to 'java.lang.ClassNotFoundException'錯誤。而具體的現(xiàn)象就是,我在手機上安裝了App,一運行測試用例就會被卸載掉,同時報這個錯誤。我在網(wǎng)上查找了一下這個錯誤的原因,很多都是下面的這個原因造成的:
(1)首先確保你已經(jīng)引入了JUnit測試框架,添加的辦法是:右鍵點你的項目→選中“Build Path”→選中“Configure Build Path…”→在Libraries選項卡中點擊“Add Library”(如下圖)→ 添加JUnit4測試框架.
圖一, 查看library
?
(2)記得在“Order and Export”選項卡中添加JUnit 4的依賴(如下圖)。
圖二,添加junit
現(xiàn)在問題來了:我按上面的方法查看了一下,我的Junit4引用正常啊,怎么還是有問題呢?于是就查看了一下AndroidManiFest.xml文件:
?
這個問題我查了很久,里面需要改的部分:
android:versionCode="32"
??? android:versionName="3.2" >
和
<</SPAN>instrumentation
??????? android:name="android.test.InstrumentationTestRunner"
??????? android:targetPackage="com.subject.zhongchou" />
我都修改的正確啊?實在沒有辦法,就放在那先休息了一周,后來在網(wǎng)上下載了一下例子,是搜索新聞的例子,安裝運行后完全正常。于是就在那個App上玩了很久。感覺上手后,就回來解決這個問題了,經(jīng)常各方面的嘗試,才發(fā)現(xiàn)問題出在:
<</SPAN>uses-sdk android:targetSdkVersion="19" />
這一句話我本來以為是我的Android的版本呢,后來才發(fā)現(xiàn)不是,于是就用aapt查看了一下我的App安裝包的信息:
????????????????????????????????????? 圖三,查看版本號
??? 這上面顯示的信息才是sdkVersion和targetSdkVersion的號,而不是我們開發(fā)測試用例的時候使用的Android的版本啊。于是就把上面的那一行代碼改成:
<</SPAN>uses-sdk android:targetSdkVersion="17" android:minSdkVersion="14" android:maxSdkVersion="17"/>
然后保存,再次運行測試用例即可!要保持這個版本號和被測試的App版本號相同,這樣就不會出現(xiàn)這個錯誤了。
轉(zhuǎn)載于:https://www.cnblogs.com/eagleking0318/p/6520943.html
總結
以上是生活随笔為你收集整理的robotium诡异的Instrumentation run failed due to 'java.lang.ClassNo的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gdb调试高级用法
- 下一篇: jQuery避免$符和其他JS库冲突的方