2010-09-25 15 views
6

Estoy tratando de utilizar el código escrito y subido por Fedor ha escrito en este hilo (Código Fuente: http://open-pim.com/tmp/LazyList.zip) Lazy load of images in ListViewAndroid aplicación: el permiso SocketException negado (No existe el fichero o directorio)

proyecto de Fedor funciona bien, pero cuando trato de adaptar el código a mi proyecto, las cosas no funcionan bien desde que me topé con esta excepción (SocketException).

De alguna manera, seguir recibiendo incluso después de ajustar el permiso en el manifiesto de tener permisos de Internet (y sí, tener una conexión activa a Internet):

<uses-sdk android:minSdkVersion="8"> 
    <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 
</uses-sdk> 

La excepción: SocketException: Permiso denegado. Mira los detalles de LogCat.

09-24 23:43:00.591: ERROR/File was not found.(1124): /mnt/sdcard/ListViewTest/-421624214 (No such file or directory) 
09-24 23:43:00.601: WARN/System.err(1124): java.net.SocketException: Permission denied 
09-24 23:43:00.611: WARN/System.err(1124):  at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocketImpl(Native Method) 
09-24 23:43:00.611: WARN/System.err(1124):  at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocket(OSNetworkSystem.java:186) 
09-24 23:43:00.622: WARN/System.err(1124):  at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:265) 
09-24 23:43:00.632: WARN/System.err(1124):  at java.net.Socket.checkClosedAndCreate(Socket.java:873) 
09-24 23:43:00.632: WARN/System.err(1124):  at java.net.Socket.connect(Socket.java:1020) 
09-24 23:43:00.632: WARN/System.err(1124):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:62) 
09-24 23:43:00.642: WARN/System.err(1124):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:88) 
09-24 23:43:00.642: WARN/System.err(1124):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTPConnection(HttpURLConnectionImpl.java:927) 
09-24 23:43:00.652: WARN/System.err(1124):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:909) 
09-24 23:43:00.661: WARN/System.err(1124):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:1152) 
09-24 23:43:00.661: WARN/System.err(1124):  at java.net.URL.openStream(URL.java:653) 
09-24 23:43:00.661: WARN/System.err(1124):  at fabiomilheiro.tests.ImageLoader.getBitmap(ImageLoader.java:80) 
09-24 23:43:00.671: WARN/System.err(1124):  at fabiomilheiro.tests.ImageLoader.access$0(ImageLoader.java:66) 
09-24 23:43:00.671: WARN/System.err(1124):  at fabiomilheiro.tests.ImageLoader$PhotosLoader.run(ImageLoader.java:173) 

El error/mnt/sdcard/ListViewTest/-421 624 214 (No existe el fichero o directorio) me está molestando. Depuré mi adaptación del código de Fedor y no veo por qué no se encuentran los archivos. Revisé y confirmé que los archivos que intento obtener existen en la web.

Por cierto, la clase de cargador de imágenes es exactamente la misma. La principal diferencia que veo entre mi código y el código de Fedor es que mi clase de actividad principal extiende ListActivity while y extiende su BaseActivity.

Respuesta

17

No sé si esto resuelve su problema, pero en su manifiesto, las directivas de permisos de uso no deben colocarse dentro de la directiva uses-sdk.

+3

¡Gracias Kevin Gaudin! Tu sugerencia resolvió el problema. Es una de esas cosas simples que no son obvias para alguien que acaba de comenzar. –

+0

El error también ocurre cuando el permiso falta por completo. – tos

+0

@tos seguro, tener un permiso extraviado es equivalente a no tenerlo en absoluto. –

1

¿Realmente tiene un archivo llamado "/ mnt/sdcard/ListViewTest/-421624214" ???

Porque me parece que alguien compiló un nombre de archivo con% d en vez de% s y convirtió el valor de un puntero en una cifra decimal en vez de desreferenciarlo a una cadena. (O alguna confusión de tipo de programador comparable en Java)

También se trata de un error al acceder a un archivo local, independientemente de lo que exista o no en la web.

+0

ese no era el problema, pero gracias de todos modos. ¡También pensé que podría ser algo así! –

Cuestiones relacionadas