簡體   English   中英

Android ICS 上的 ACCESS_NETWORK_STATE 權限

[英]ACCESS_NETWORK_STATE permission on Android ICS

我在應用程序清單中聲明了權限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)

我更新了這樣的權限並且它有效。

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

這是因為 ACCESS_NETWORK_STATE 用作連接管理器,這需要 INTERNET 連接。

我相信這是 Eclipse 的問題; 它無法刷新清單以加載權限。

我遇到了與原始海報相同的問題,並通過第二次添加權限解決了這個問題——但后來我能夠在不影響行為的情況下刪除權限。 這讓我懷疑 Eclipse 在我觸摸文件之前沒有正確加載權限。

只需添加以下權限,它就可以正常工作,我以前遇到過這個問題並與我一起解決

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

Clean 然后 Build 項目為我解決了這個問題。

嗯,如果你默認添加,它將是:

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

如果您通過以下方式重新添加權限:

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

它工作正常。 難以置信的 ! 我花了2天

您缺少 Internet 權限。添加此權限將解決您的問題

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

清潔項目。 檢查清單文件。 某些包名稱更改或錯放的數據可能會導致此錯誤。

清理項目將起作用。

只需剪切<uses-permission android:name="android.permission.INTERNET" />並粘貼上述所有權限。 它會工作得很好...

在您的代碼中,您會在調用之前檢查 Internet 可用性,以便您的應用程序不會在運行時崩潰。 為此,您必須訪問需要權限的“網絡狀態”:

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

並且當 Internet 可用時,您的設備使用需要許可的“ INTERNET ”與服務器通信:

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

就我而言, Clean ProjectRebuild Project都不起作用,我花了幾個小時來弄清楚如何擺脫這個 lint 錯誤。

我也害怕使用最后一個選項Invalidate Caches and Restart因為我可能會在將來回滾到文件的任何本地歷史記錄,以防出現任何錯誤。

所以最后,我選擇了以下選項。

  1. 我選擇了File->Invalidate Caches and Restart
  2. 它打開了一個彈出窗口。 然后我選擇了Just Restart選項。

你猜怎么着!它解決了我的問題。 因此,如果你們中的任何人仍在努力擺脫此錯誤,您可能想嘗試我的解決方案。 請讓我知道它是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM