Приложение Android: отказано в разрешении SocketException (нет такого файла или каталога) - PullRequest
6 голосов
/ 25 сентября 2010

Я пытаюсь использовать код, написанный и загруженный Федором, размещенный в этой теме Ленивая загрузка изображений в ListView (Исходный код: http://open -pim.com / tmp / LazyList.zip )

Проект Федора работает хорошо, но когда я пытаюсь адаптировать код к своему проекту, дела идут плохо, так как я столкнулся с этим исключением (SocketException).

Как-тоЯ продолжаю получать его даже после установки разрешения в манифесте на разрешение доступа в Интернет (и да, у меня работает подключение к Интернету):

<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>

Исключение: SocketException: Разрешение отклонено.Посмотрите подробности 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)

Ошибка / mnt / sdcard / ListViewTest / -421624214 (нет такого файла или каталога) вызывает меня.Я отладил свою адаптацию кода Федора и не понимаю, почему файлы не найдены.Я проверил и подтвердил, что файлы, которые я пытаюсь получить, существуют в Интернете.

Кстати, класс загрузки изображений точно такой же.Основное различие между моим кодом и кодом Федора заключается в том, что мой основной класс активности расширяет ListActivity, а его класс BaseActivity -

.

Ответы [ 2 ]

17 голосов
/ 25 сентября 2010

Я не знаю, решает ли это вашу проблему, но в вашем манифесте директивы использования разрешений не следует помещать в директиву использования-sdk.

1 голос
/ 25 сентября 2010

У вас действительно есть файл с именем "/ mnt / sdcard / ListViewTest / -421624214" ???

Потому что мне кажется, что кто-то sprintf'd имя файла с% d вместо% s, и он преобразует значение указателя в десятичное целое вместо разыменования его в строку. (Или какое-то похожее замешательство программиста в Java)

Также это ошибка при доступе к локальному файлу, независимо от того, что существует или не существует в сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...