执行Android JUnit测试出现java.net.SocketException: Permission denied的解决方法
2013-08-02 19:43
706 查看
问题:
执行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"/>
具体添加位置可参考
/article/1741877.html
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应用程序的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"/>
具体添加位置可参考
/article/1741877.html
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程序在调试时出现了套接字异常“java.net.SocketException: Permission denied”该如何解决
- android程序在调试时出现了套接字异常“java.net.SocketException: Permission denied”该如何解决
- 出现 java.net.ConnectException: Connection refused 异常的原因及解决方法
- 在执行ab压力测试时出现socket: Too many open files (24)的解决方法
- 执行EXE程序出现unable to locate suitable Java runtime Environment on this machine java解决方法
- 出现 java.net.MalformedURLException: no protocol 异常的原因及解决方法
- asp.net执行js出现“已终止操作”的解决方法
- android 加载大图片是出现java.lang.OutOtMemoryError问题解决方法
- cmd命令行执行java程序的编译和执行的方法及可能出现找不到或无法加载主类的错误的解决
- java.net.SocketException: Too many open files解决方法
- (转)Android工程出现 java.lang.NoClassDefFoundError错误解决方法
- android中,使用ant多渠道打包时出现Perhaps JAVA_HOME does not point to the JDK问题的解决方法
- 在android使用httpclient时出现“SocketException: Broken Pipe”的解决方法
- Android工程出现 java.lang.NoClassDefFoundError错误解决方法
- 出现 java.net.UnknowHostException: XXX.XXX.XXX 异常的原因及解决方法
- tomcat运行时候出现java.net.BindException: Address already in use: JVM_Bind错误解决方法
- android4.2.2及以上webview调用java本地方法不执行解决办法
- 在android使用httpclient时出现“SocketException: Broken Pipe”的解决方法
- android 程序运行出现 java.lang.NoClassDefFoundError的原因与解决方法之一
- Android java.net.SocketException: Permission denied 解决