2012-10-08 32 views
19

He declarado el permiso ACCESS_NETWORK_STATE en el manifiesto de la aplicación como a continuación.Permiso ACCESS_NETWORK_STATE en Android ICS

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

Todo está bien en Android 2.x. Pero en Android ICS, falló con el siguiente log log.

java.lang.SecurityException: ConnectivityService: Ni el usuario ni 10093 proceso actual tiene android.permission.ACCESS_NETWORK_STATE. en android.os.Parcel.readException (Parcel.java:1327) en android.os.Parcel.readException (Parcel.java:1281) en android.net.IConnectivityManager $ Stub $ Proxy.getActiveNetworkInfo (IConnectivityManager.java: 663) en android.net.ConnectivityManager.getActiveNetworkInfo (ConnectivityManager.java:455) en com.tapfortap.AdView.getNetwork (AdView.java:146) en com.tapfortap.AdView.loadAdsWithAppId (AdView.java:133) al com.tapfortap.AdView.access $ 100 (AdView.java:47) en com.tapfortap.AdView $ 1 $ 1.run (AdView.java:88) en android.os.Handler.handleCallback (Handler.java: 605) en android.os.Handler.dispatchMessage (Handler.java:92) en y roid.os.Looper.loop (Looper.java:137) en android.app.ActivityThread.main (ActivityThread.java:4503) en java.lang.reflect.Method.invokeNative (Método nativo) en java.lang .reflect.Method.invoke (Method.java:511) en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:809) en com.android.internal.os.ZygoteInit.main (ZygoteInit .java: 576) en dalvik.system.NativeStart.main (Método nativo)

+0

en ese lugar en su Manifiesto qué se coloca el -Tag? – Thommy

+0

intente limpiar y reconstruir su proyecto, y desinstale la compilación anterior desde su dispositivo y vuelva a probar –

Respuesta

28

Esto si un error del marco de Android ICS. Acabo de resolver esto al agregar este permiso nuevamente:

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

¡Increíble !.

+32

Esta no puede ser una respuesta válida. Su actualización del manifiesto probablemente solo haya desencadenado una compilación limpia o algo así. – Makibo

+0

No sé por qué, pero esos son los pasos para resolver mi problema. Creo que este es un error de Android SDK, y Android SDK debería solucionarlo. –

+1

¿Qué sucede cuando elimina la última línea de su fragmento? si se rompe nuevamente, eso sería una fuerte indicación de un error. si no lo hace, la explicación de "construcción limpia" de @Makibo wuold sería mucho más probable. PD: olvídalo, acabo de ver que la respuesta es 2+ años ... – katzenhut

9

Creo que esto es un problema con Eclipse; no actualiza el manifiesto para cargar el permiso.

que tenían el mismo problema que el cartel original y lo resolvió añadiendo el permiso por segunda vez - pero entonces yo era capaz de eliminar el permiso sin afectar el comportamiento. Esto me hace sospechar que Eclipse no cargó permisos correctamente hasta que toqué el archivo.

2

Limpiar y luego construir proyecto resolvió el problema para mí.

0

acaba de cortar y pegar el <uses-permission android:name="android.permission.INTERNET" /> todos los permisos anteriores. Se trabajará muy bien ...

1

Proyecto Limpio. Verifica el archivo de manifiesto. Algunos cambios en el nombre del paquete o datos erróneos pueden causar este error.

Limpiar el proyecto funcionará.

+0

si usa Android Studio, este problema no vendrá. +1 –

9

Sólo agregar el permiso de abajo y no tendrán ningún problema, que tenía este problema antes y resuelto conmigo

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

Uh-oh, si u añadiendo de forma predeterminada, será:

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

si u volver a agregar el permiso de:

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

funciona bien. ¡Increíble! Me cuesta 2 días

1

se echa en falta en Internet permission.add este permisssion va a corregir su problema

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

En su código, no habría lugares donde se estaría comprobando la disponibilidad de Internet antes de hacer su llamadas para que su aplicación no se bloquee en tiempo de ejecución. Para ello, hay que acceder a la 'red estatal' que requiere el permiso:

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

Y cuando el Internet está disponible, el dispositivo se comunica con el servidor a través del 'INTERNET' que requiere el permiso:

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

Cuestiones relacionadas