24

我在应用程序清单中声明了权限ACCESS_NETWORK_STATE,如下所示。

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

在 Android 2.x 上一切都很好。但在 Android ICS 上,它因以下日志猫而失败。

 java.lang.SecurityException: ConnectivityService: Neither user 10093
 nor current process has android.permission.ACCESS_NETWORK_STATE. at
 android.os.Parcel.readException(Parcel.java:1327) at
 android.os.Parcel.readException(Parcel.java:1281) at
 android.net.IConnectivityManager$Stub$Proxy.getActiveNetworkInfo(IConnectivityManager.java:663)
 at
 android.net.ConnectivityManager.getActiveNetworkInfo(ConnectivityManager.java:455)
 at com.tapfortap.AdView.getNetwork(AdView.java:146) at
 com.tapfortap.AdView.loadAdsWithAppId(AdView.java:133) at
 com.tapfortap.AdView.access$100(AdView.java:47) at
 com.tapfortap.AdView$1$1.run(AdView.java:88) at
 android.os.Handler.handleCallback(Handler.java:605) at
 android.os.Handler.dispatchMessage(Handler.java:92) at
 android.os.Looper.loop(Looper.java:137) at
 android.app.ActivityThread.main(ActivityThread.java:4503) at
 java.lang.reflect.Method.invokeNative(Native Method) at
 java.lang.reflect.Method.invoke(Method.java:511) at
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) at
 dalvik.system.NativeStart.main(Native Method)
4

10 回答 10

35

我像这样更新了权限,它可以工作。

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

这是因为 ACCESS_NETWORK_STATE 被用作连接管理器,这需要 INTERNET 连接。

于 2012-10-08T09:04:39.147 回答
10

我相信这是 Eclipse 的一个问题;它无法刷新清单以加载权限。

我遇到了与原始海报相同的问题,并通过第二次添加权限来解决它 - 但后来我能够在不影响行为的情况下删除权限。这让我怀疑 Eclipse 在我触摸文件之前没有正确加载权限。

于 2013-04-09T00:44:21.253 回答
10

只需添加以下权限,它就可以正常工作,我之前遇到过这个问题并与我一起解决

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
于 2015-05-19T13:46:16.340 回答
2

清理然后构建项目为我解决了这个问题。

于 2013-04-19T17:53:56.317 回答
2

哦,如果你默认添加,它将是:

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

如果您通过以下方式重新添加权限:

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

它工作正常。逆天 !我花了2天

于 2015-10-06T07:39:19.767 回答
2

您缺少 Internet 权限。添加此权限将纠正您的问题

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
于 2016-11-07T05:09:10.983 回答
1

清洁项目。检查清单文件。某些包名称更改或错误放置的数据可能会导致此错误。

清理项目将起作用。

于 2015-03-12T05:44:15.870 回答
0

只需剪切<uses-permission android:name="android.permission.INTERNET" />并粘贴上述所有权限即可。它会正常工作...

于 2014-06-04T05:41:32.493 回答
0

在您的代码中,您会在某些地方在进行调用之前检查 Internet 可用性,这样您的应用程序就不会在运行时崩溃。为此,您必须访问需要权限的“网络状态”:

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

当互联网可用时,您的设备使用需要许可的“互联网”与服务器通信:

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

于 2017-10-09T04:15:08.843 回答
0

就我而言,Clean Project和Rebuild Project都不起作用,我花了几个小时来弄清楚如何摆脱这个 lint 错误。

我也害怕使用最终选项Invalidate Caches and Restart因为将来我可能会回滚到文件的任何本地历史记录,以防出现任何错误。

所以最后,我选择了以下选项。

  1. 我选择了File->Invalidate Caches and Restart
  2. 它打开了一个弹出窗口。然后我选择了Just Restart选项。

你猜怎么着!!它解决了我的问题。因此,如果你们中的任何人仍在努力摆脱此错误,您可能想尝试我的解决方案。让我知道它是否有效。

于 2019-08-21T12:45:22.067 回答