java_lang_SecurityException

问题分析

当违背安全原则,检测到安全错误时会抛出此类异常。

解决方案

当违背安全原则,检测到安全错误时会抛出此类异常。具体原因需要看给出的相应的其他信息并获取相应权限。

示例

  Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
        at java.net.InetAddress.lookupHostByName(InetAddress.java:430)
        at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
        at java.net.InetAddress.getAllByName(InetAddress.java:214)
        at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
        at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
        at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
        at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
        at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
        at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316)

问题分析:

因为没有获取到访问网络权限,因此抛出此类异常。

解决方案:

因为没有获取到访问网络权限而抛出此类异常。需要检查AndroidManifest.xml文件是否获取权限,检查手机是否有限制权限的软件如管家等并打开权限。

代码示例

AndroidManifest.xml中使用网络权限。

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

因为在这个例子中使用HTTPUrlConnection类,根据官方文档还需要申请检测网络状态的权限。

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

如果还是报这个异常,请确认手机中没有其他软件管家控制网络权限没有授权。

参考文献