1. 程式人生 > >執行Android JUnit測試出現java.net.SocketException: Permission denied的解決方法

執行Android JUnit測試出現java.net.SocketException: Permission denied的解決方法

問題:

執行Android應用程式的junti測試時,執行結果為Error,Failure Trace如下:

java.net.SocketException: Permission denied
at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocketImpl(Native Method)
at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocket(OSNetworkSystem.java:186)
at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:265)
at java.net.Socket.checkClosedAndCreate(Socket.java:873)
at java.net.Socket.connect(Socket.java:1020)

。。。。

這裡假設手機或者模擬器可以正常上網,不能上網的請忽略此文。

原因分析:

1.  app的manifest檔案需要新增聯網的許可權。

大部分人出錯都是這個原因。如下:

<uses-permission android:name="android.permission.INTERNET"/>

具體新增位置可參考

2. AndroidManifest.xml檔案中android:targetPackage的值,即包名錯誤。

這個是我今天除錯犯的錯誤,找了好久才發現原因。
建立可執行junit測試的Android應用程式時,需要在AndroidManifest.xml的指定位置新增以下資訊:
<!-- 這個新增在manifest節點下 -->
<instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.hunter.querymobile

" />

<!-- 這個新增在application節點下 -->
<uses-library android:name="android.test.runner" />

特別需要注意的是,每次新增這部分資訊時一定要修改targetPackage的包名,我的程式碼就是忘了修改這個包名導致錯誤的


3. 修改後的最新程式碼沒有正常編譯。

Clean一下程式碼,可能是剛修改的程式碼沒有重新編譯造成的。這個是在網上看到的一個情況。
選單欄-->Project-->Clean...

相關推薦

執行Android JUnit測試出現java.net.SocketException: Permission denied解決方法

問題: 執行Android應用程式的junti測試時,執行結果為Error,Failure Trace如下: java.net.SocketException: Permission denied at org.apache.harmony.luni.platform.OS

java.net.SocketException: Permission denied(將80埠重定向到8080埠)

很多時候,tomcat是非root賬號,直接將8080改成80,tomcat會報錯 Java.NET.SocketException: Permission denied。原因是非root使用者不能訪問1024一下的埠。 為了解決這種問題,有方法如下:1.將當前使用者配置到sudo規則裡

java.net.SocketException(permission denied)安卓端寫的TCP協議軟體報錯 原因是建立的套接字沒有限權對外連線。

安卓端寫的TCP協議軟體報錯 原因是建立的套接字沒有限權對外連線。在AndroidManifest.xml中,加上這一句話,取得許可權。 <uses-permission android:name="android.permission.INTERNET" />

java.net.SocketException: Connection reset 解決方法

自從SEOTcs系統11月份24日更新了一下SEO得分演算法以來,一直困擾我的一個問題出現了,java的資料job任務,在執行過程中會經常報以下的錯誤: “2011-12-03 18:00:32 DefaultHttpClient [INFO] I/O exception (java.net.Socke

使用javamail出現java.net.SocketException: Network is unreachable: connect異常 解決方法

在ssh中使用javamail自動傳送郵件,出現異常如下 javax.mail.MessagingException: Could not connect to SMTP host: xxx.xxx.xxx, port: 25; nested exception is:

Android get請求出現java.net.ProtocolException: Unexpected status line

Android 在做get請求時出現java.net.ProtocolException: Unexpected status line這種錯誤的時候,一定要檢查你的URL是不是出現了換行符或者是其他的符號,解決辦法是用UrlEncode.encode()一下

在liunx下經常出現java.net.SocketException: Too many open files錯誤是什麼原因

釋出在Tomcat+linux伺服器上的專案經常報”java.net.SocketException: Too many open files"的錯誤,根據錯誤分析如下 : Linux 系統預設的open files的設定是1024 通過 ulimit -a進行檢視。 core file size     

java.net.SocketException四大異常解決方案

常用方法 下場 不知道 -i keep 至少 通訊 star 程序員 java.net.SocketException如何才能更好的使用呢?這個就需要我們先要了解有關這個語言的相關問題。希望大家有所幫助。那麽我們就來看看有關java.net.SocketException的

java.net.SocketException: Connection reset 解決思路

 思路:          1:檢視埠號是否佔用                    命令 : 例 lsof -i:9259 (9259tomcat埠)   kill -9 PID          2:檢視是否tomcat程序  (有時候bin目錄下   ./s

tomcat啟動報錯 java net BindException Permission denied null

                     1,啟動報錯顯示[org.springframework.web.servlet.DispatcherServlet]FrameworkServlet 'springMvc': initialization completed in 382 msJun 01, 201

android 網路報錯 java.lang.SecurityException: Permission denied (missing INTERNET permission?) 解決

Android app裡試圖用HttpUrlConnection獲取網路連線,忘記在AndroidManifest清單檔案裡宣告需要用到Internet的許可權,執行時報此錯誤。 解決方法 在AndroidManifest.xml中 與Application平級的地方加入 <use

tomcat啟動報錯:java.net.BindException: Permission denied :80

1,啟動報錯顯示 [org.springframework.web.servlet.DispatcherServlet]FrameworkServlet 'springMvc': initialization completed in 382 ms Jun

關於WIN10系統登入銀河超算出現java被安全設定阻止解決方法

前提是安裝過JVM。 1.登入銀河超算 2.進入之後會彈出一個對話方塊 這裡借用的網路上的圖,WIN10下的類似。 3.開啟控制面板上 新增網上到例外站點即可,注意這裡的新增例外站點是在java安全項中,而不是瀏覽器裡面的安全項。 PS:如果出現什麼你的版本過低,

Android 8.0 system app載入so Permission denied 解決

在預置包含react native 的Android app 預置到mtk 6739的系統中,此app 具體 platform 簽名。此app啟動會載入一些 facebook的so庫 發現此app 如果預置到system/app下,啟動會報錯。開始以為是沒有把相關的so庫 放到 sys

Junit測試出現異常:Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.commons.util.

mage lan release ret 解決方案 common 你會 問題 nbsp 在進行單元測試時,測試出現異常 pom.xml依賴如下 <dependency> <groupId>org.junit.jupiter<

android java.net.SocketException: Connection reset by peer

寫了個android上測試socket的例子: server側: class ServerThread extends Thread { /** * TCP. */ @Override public void run() { ServerSocket s

testNG java.net.SocketException: Software caused connection abort: socket write error

dex ges error pom.xml .so lai sun panel light 執行用例報錯,提示 java.net.SocketException: Software caused connection abort: socket write error

搭建項目Maven+springMVC+hibernate時,JUnit測試出現報ClassNotFoundException錯誤的解決

== exception net sso data found exc blog mta 近期在搭建Maven+springMVC+hibernate項目,正常啟動項目時一切正常。但JUNIT測試時出現報ClassNotFoundException錯

Unable to open debugger port (127.0.0.1:51554): java.net.SocketException "socket closed"

lose 127.0.0.1 exe 奇葩 啟動報錯 ctrl 重新 ctr java 剛開始使用IDEA 總是有各種各樣奇葩的問題 啟動報錯: Unable to open debugger port (127.0.0.1:51554): java.net.SocketE

【轉】java.net.SocketException

啟動 不能 可能 sta 客戶 如果能 退出 地址 stat 第1個異常是java.net.BindException:Address already in use: JVM_Bind。該異常發生在服務器端進行new ServerSocket(port)(port是一個0,