Pergunta

Estou tentando analisar um pouco de HTML usando o JSUP (1.3.3) na minha atividade do Android. Quando eu chamo este código

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

Funciona bem no Android 2.1 e 2.2, mas em 1.6 eu recebo um "java.io.ioException: 403 Erro carregando URL".

Estou usando o emulador para testar isso e notei que os anúncios do AdMob também não estão aparecendo em 1.6, mas eles funcionam em 2.0, 2.1 e 2.2.

Usar o navegador da web no emulador 1.6 funciona, por isso estou bastante confiante de que o problema está no meu código em algum lugar.

Existe alguma permissão extra necessária para acesso à Internet em 1.6 de que você não precisa no 2.0+?

É assim que meu arquivo de manifesto é estruturado, a posição da tag de permissão de usos tem algum efeito?

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

Eu tentei criar um novo projeto do zero com apenas uma tela do Hello World que usa o método jsoup.connect () e que funciona bem no mesmo emulador 1.6, por isso deve ser um problema de código, mas não consigo descobrir .

Foi útil?

Solução

O JSUP usa internamente HttpurlConnection. Aqui está o Exceção de lançamento de linha.

A conexão com a Internet está OK (ou então lançaria exceção mais cedo) e você está recebendo uma resposta do servidor que é: 403 http proibido

Existe algum tipo de login no lugar? Verifique se você pode abrir o mesmo URL no navegador no mesmo dispositivo/emulador.

Outras dicas

Tente inserção /usa-sdk próximo ao final do script ou tente excluir /usar-permissão com cada um com suportes de ângulo

Eu tentei criar um novo projeto do zero com apenas uma tela do Hello World que usa o método jsoup.connect () e que funciona bem no mesmo emulador 1.6, por isso deve ser um problema de código, mas não consigo descobrir .

Tente colocar um uso de teste deste início na sua inicialização de aplicativos (ou se isso causa um tempo limite de ANR, adicione um botão "teste")

Faça uma cópia do seu aplicativo e comente muitas coisas

Em algum lugar entre o seu teste mínimo que funciona e seu aplicativo completo, que não existe, há uma diferença importante. Divida recursivamente a diferença e a conquista ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top