L'accesso a Internet non funziona in Android 1.6, ma lavora a 2.0 / 2.1 / 2.2
-
26-09-2019 - |
Domanda
Sto cercando di analizzare il linguaggio HTML usando jsoup (1.3.3) nella mia attività Android. Quando chiamo questo codice
Jsoup.connect("http://www.google.com").get();
Funziona bene in Android 2.1 e 2.2, ma in 1.6 ho un. "Java.io.IOException: 403 URL Errore durante il caricamento"
Sto usando l'emulatore per testare questo e ho notato che AdMob gli annunci non sono inoltre mostrando in 1.6 ma funzionano in 2.0, 2.1 e 2.2.
Utilizzando il browser web in 1.6 emulatore funziona quindi sono abbastanza fiducioso che il problema è nel mio codice da qualche parte.
C'è qualche extra permessi ho bisogno di connessione internet a 1.6 che non è necessario in 2.0 +?
Ecco come il mio file manifesto è strutturato, non la posizione del tag usi-permesso ha alcun effetto?
<?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>
ho provato la creazione di un nuovo progetto da zero con solo uno schermo ciao mondo che utilizza il metodo Jsoup.connect () e che funziona bene sullo stesso 1.6 emulatore, quindi deve essere un problema di codice ma non posso capirlo.
Soluzione
HttpURLConnection . Ecco l' linea di lancio eccezione .
La connessione internet è OK (altrimenti getterebbe eccezione in precedenza) e hai trovato una risposta dal server che è: 403 HTTP VIETATO
C'è una sorta di login in atto? Fare controllo che è possibile aprire lo stesso URL nel browser stesso dispositivo / emulatore.
Altri suggerimenti
Provare a inserire / impieghi-sdk vicino alla fine dello script o di provare a cancellare / impieghi-permesso a ogni circondato da parentesi angolari
ho provato la creazione di un nuovo progetto da zero con solo uno schermo ciao mondo che utilizza il metodo Jsoup.connect () e che funziona bene sullo stesso 1.6 emulatore, quindi deve essere un problema di codice ma non posso capirlo.
Prova a mettere un utilizzo di prova di questo presto nel vostro avvio dell'applicazione (o, se ciò provoca un timeout ANR, aggiungere un pulsante "test")
Fare una copia della vostra applicazione e commentare un sacco di cose fuori
Da qualche parte tra il test minimale che funziona e l'applicazione completa, che non lo fa, si trova una differenza importante. Ricorsivamente dividere la differenza e conquistarla ...