Доступ в Интернет не работает в Android 1.6, но работает в 2.0 / 2.1 / 2.2 - PullRequest
1 голос
/ 18 ноября 2010

Я пытаюсь разобрать html, используя jsoup (1.3.3) в своей активности Android. Когда я называю этот код

Jsoup.connect("http://www.google.com").get();

Он отлично работает в Android 2.1 и 2.2, но в 1.6 я получаю «java.io.IOException: 403 Ошибка загрузки URL».

Я использую эмулятор, чтобы проверить это, и я заметил, что реклама admob также не отображается в 1.6, но она работает в 2.0, 2.1 и 2.2.

Использование веб-браузера в эмуляторе 1.6 работает, поэтому я вполне уверен, что проблема где-то в моем коде.

Есть ли какое-то дополнительное разрешение, которое мне нужно для доступа в интернет в версии 1.6, которое вам не нужно в версии 2.0+?

Вот как структурирован мой файл манифеста, влияет ли положение тега использования-разрешения?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.foo.bar"
  android:versionCode="1"
  android:versionName="1.0"
  android:installLocation="auto">

<application android:icon="@drawable/icon" 
android:label="@string/app_name" 
android:theme="@android:style/Theme.NoTitleBar" 
android:name="blahblah" 
android:description="@string/app_desc">

    <activity android:label="@string/app_name" android:name=".activities.MainMenu">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

<activity android:name=".activities.FullList" android:label="@string/app_name"/>

<!-- The application's publisher ID assigned by AdMob -->
<meta-data android:value="blahblahblah" android:name="ADMOB_PUBLISHER_ID" />

</application>
<uses-sdk android:minSdkVersion="4"/>

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

</manifest>

Я пытался создать новый проект с нуля, используя только экран hello world, в котором используется метод Jsoup.connect () и который отлично работает на том же эмуляторе 1.6, поэтому это должно быть проблема с кодом, но я не могу понять это.

Ответы [ 3 ]

1 голос
/ 23 ноября 2010

JSOUP внутренне использует HttpURLConnection .Вот исключительная ситуация * .

Интернет-соединение в порядке (иначе оно выдаст исключение ранее), и вы получаете ответ от сервера: 403 HTTP FORBIDDEN

Есть ли какой-нибудь логин на месте?Убедитесь, что вы можете открыть один и тот же URL в браузере на том же устройстве / эмуляторе.

0 голосов
/ 22 ноября 2010

Я пытался создать новый проект с нуля, используя только экран hello world, в котором используется метод Jsoup.connect () и который отлично работает на том же эмуляторе 1.6, поэтому это должно быть проблема с кодом, но я не могу понять это.

Попробуйте поставить тестовое использование этого в начале вашего приложения (или, если это вызывает тайм-аут ANR, добавьте кнопку "тест")

Сделайте копию своей заявки и прокомментируйте многое

Где-то между вашим минимальным тестом, который работает, и вашим полным приложением, которое не работает, есть важное различие. Рекурсивно разделить разницу и победить ее ...

0 голосов
/ 22 ноября 2010

Попробуйте вставить / Use-SDK ближе к концу скрипта или попробуйте удалить / Use-разрешения, каждый из которых заключен в угловые скобки

...