在使用JUnit進行測試的時候,遇到這個問題。網上的解釋是:使用Eclipse對Java代碼進行調試,不管是遠程JVM仍是本地JVM都會進行Socket通信.發生這樣的錯誤是因爲這些軟件會修改winsock,還會監聽和佔用一些端口,Socket通信不上形成的。html
我經過cmd →ping localhost ,發現localhost指向::1,這是由於個人系統是win7 ,它支持IPv6的緣由。而Eclipse須要localhost指向127.0.0.1。因而就修改hosts文件(C:\Windows\System32\drivers\etc\hosts)。發現hosts中有兩行被註釋掉了(#後的東西表明被註釋掉了)。java
# localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost
而後,去掉127.0.0.1前的#號,就能夠了。若是沒有127.0.0.1 localhost這行,則本身手動添加上去。這樣咱們就將localhost重定向爲127.0.0.1了。android
這個問題也多是本地的配置文件被修改,或防火牆開着的緣由。若是本地文件被修改,那麼在cmd命令行裏面輸入netsh winsock reset命令就能夠解決。windows
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bang.test" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <!-- 在本應用中導入須要使用的包,放在application裏面activity外面 --><uses-library android:name="android.test.runner" />
<activity android:name=".JunitTestActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application><uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
<!-- 記住這個一要放在application外面,否則會出現配置錯誤 信息 --><instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage
="com.bang.test" android:label="Tests for My App" />
</manifest>
必需要添加的配置,已經在上面的示例配置文件中用灰色背景標出來了,配置須要放置Manifest中的位置在註釋中。app
根據本身的程序,在AndroidManifest.xml文件中配置上面的信息。若是上面的信息配置正確,鼠標右鍵單擊工程,選擇Run As\Run configurations,在Android JUnit Test選項中選擇工程,將會看到下面這個界面:框架
在Instrumentation runner後的列表框選項中,咱們看到android.test.InstrmentationTestRunner,並處於當前選擇狀態。若是這個沒 有選擇框中沒有任何選項,就說明AndroidManifest.xml配置有問題。socket
一、首先確保你已經引入了JUnit測試框架,添加的辦法是:右鍵點你的項目→選中「Build Path」→選中「Configure Build Path…」→在Libraries選項卡中點擊「Add Library」(以下圖)→ 添加JUnit4測試框架jsp
二、記得在「Order and Export」選項卡中添加JUnit 4的依賴(以下圖)。單元測試
控制檯中會有一段錯誤提示測試
Invalid layout of java.lang.String at value # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (javaClasses.cpp:136), pid=5560, tid=5584 # fatal error: Invalid layout of preloaded class # # JRE version: (7.0_40-b43) (build ) # Java VM: Java HotSpot(TM) Client VM (24.0-b56 mixed mode windows-x86 ) # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows # # An error report file with more information is saved as: # D:\個人文檔\workspace\solarTest\hs_err_pid5560.log # # If you would like to submit a bug report, please visit: # http://bugreport.sun.com/bugreport/crash.jsp #
後面發現是debug configuration的問題。個人測試項目的BootStrap Entries,默認是Android2.3.3。只要去掉這個東西就好了。只要右鍵點你的項目→選中「Debug As」→ 選擇「Debug Configurations」→而後按下圖操做,去掉對Android2.3.3的啓動依賴便可。
參考連接