【问题标题】:ACCESS_NETWORK_STATE permission on Android ICSAndroid ICS 上的 ACCESS_NETWORK_STATE 权限
【发布时间】:2012-09-28 11:51:05
【问题描述】:

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

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

在 Android 2.x 上一切正常。但在 Android ICS 上,它失败并显示以下日志 cat。

 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)

【问题讨论】:

  • 您在清单中的哪个位置放置了 -Tag?
  • 尝试清理并重建您的项目,然后从您的设备上卸载以前的构建并再次测试

标签: android permissions


【解决方案1】:

我更新了这样的权限并且它有效。

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

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

【讨论】:

  • 这不是一个有效的答案。您对清单的更新可能只是触发了一个干净的构建或类似的东西。
  • 我不知道为什么,但这是解决我的问题的步骤。我认为这是android SDK的一个bug,Android SDK teem应该修复它。
  • 从 sn-p 中删除最后一行时会发生什么?如果它再次中断,那将是一个错误的强烈迹象。如果没有,@Makibo wuold 的“干净构建”解释更有可能。 PS:算了,我才看到答案是2+岁...
  • 我在 Android Studio 中遇到了这个问题。清单的更改没有被提取,只有清理/重建解决了它。
  • 正如@Makibo 所说,这是无效的。应该是触发清理构建来解决问题。只需清理构建或清理缓存并重新启动 Android Studio。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        清理项目将起作用。

        【讨论】:

        • 如果你使用android studio,就不会出现这个问题。 +1
        【解决方案6】:

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

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

        【讨论】:

          【解决方案7】:

          哦哦,如果你默认添加,会是:

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

          如果你重新添加权限:

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

          它工作正常。 逆天 !我花了两天时间

          【讨论】:

            【解决方案8】:

            您缺少 Internet 权限。添加此权限将解决您的问题

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

            【讨论】:

              【解决方案9】:

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

              &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/&gt;

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

              &lt;uses-permission android:name="android.permission.INTERNET" /&gt;

              【讨论】:

                【解决方案10】:

                在我的例子中,Clean ProjectRebuild Project 都不起作用,我花了几个小时来弄清楚如何摆脱这个 lint 错误。

                我也害怕使用最后一个选项使缓存无效并重新启动,因为将来我可能会回滚到文件的任何本地历史记录,以防出现任何错误。

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

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

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2012-12-07
                  • 1970-01-01
                  • 2012-03-16
                  • 2015-12-13
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-04-06
                  • 1970-01-01
                  相关资源
                  最近更新 更多