L'accès Internet ne fonctionne pas dans Android 1.6, mais fonctionne en 2.0 / 2.1 / 2.2

StackOverflow https://stackoverflow.com/questions/4219211

  •  26-09-2019
  •  | 
  •  

Question

Je suis en train d'analyser certains HTML en utilisant jsoup (1.3.3) dans mon activité android. Quand j'appelle ce code

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

Il fonctionne très bien dans Android 2.1 et 2.2 mais 1.6 Je reçois. "Java.io.IOException: 403 URL de chargement d'erreur"

J'utilise l'émulateur pour tester et je l'ai remarqué que AdMob annonces ne sont montrent à 1,6, mais ils travaillent dans la version 2.0, 2.1 et 2.2.

Utilisation du navigateur Web dans l'émulateur 1.6 fonctionne donc je suis assez confiant que le problème est dans mon code quelque part.

Y at-il la permission supplémentaire que je besoin d'un accès à Internet en 1.6 que vous n'avez pas besoin dans la version 2.0 +?

Voici comment mon fichier manifeste est structuré, ne la position de la balise utilisations-autorisation ont un effet?

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

Je l'ai essayé de créer un nouveau projet à partir de zéro avec juste un écran Bonjour tout le monde qui utilise la méthode Jsoup.connect () et qui fonctionne très bien sur le même émulateur 1.6, il doit donc être un problème de code, mais je ne peux pas comprendre.

Était-ce utile?

La solution

JSOUP utilise en interne HttpURLConnection . Voici la ligne de lancer .

La connexion Internet est OK (ou bien elle jetterait exception plus tôt) et que vous obtenez une réponse du serveur qui est: 403 HTTP INTERDIT

Y at-il une sorte de connexion en place? Faites vérifier que vous pouvez ouvrir la même URL dans le navigateur sur le même appareil / émulateur.

Autres conseils

Essayez d'insérer / utilisations-sdk à la fin du script ou essayez de supprimer / utilisations-autorisation à chaque entourée de crochets

  

Je l'ai essayé de créer un nouveau projet à partir de zéro avec juste un écran Bonjour tout le monde qui utilise la méthode Jsoup.connect () et qui fonctionne très bien sur le même émulateur 1.6, il doit donc être un problème de code, mais je ne peux pas comprendre.

Essayez de mettre un usage de test de ce début de votre démarrage de l'application (ou si cela provoque un délai d'attente de l'ANR, ajoutez un bouton « test »)

Faites une copie de votre demande et commenter beaucoup de choses

Quelque part entre votre test minimal qui fonctionne et votre application complète qui n'a pas, il est une différence importante. diviser récursive la différence et la conquérir ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top