1

我正在尝试在我的 android 活动中使用 jsoup (1.3.3) 解析一些 html。当我调用此代码时

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

它在 android 2.1 和 2.2 中运行良好,但在 1.6 中我得到一个“java.io.IOException: 403 Error loading URL”。

我正在使用模拟器对此进行测试,我注意到 admob 广告也没有在 1.6 中显示,但它们在 2.0、2.1 和 2.2 中有效。

在 1.6 模拟器中使用 Web 浏览器确实有效,所以我很确定问题出在我的代码中。

我在 1.6 中是否需要一些额外的权限才能访问互联网,而在 2.0+ 中不需要?

这就是我的清单文件的结构,uses-permission 标签的位置有什么影响吗?

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

我已经尝试从头开始创建一个新项目,只使用一个使用 Jsoup.connect() 方法的 hello world 屏幕,并且在同一个 1.6 模拟器上运行良好,所以它一定是代码问题,但我无法弄清楚.

4

3 回答 3

1

JSOUP 在内部使用HttpURLConnection。这是抛出异常的行

互联网连接正常(否则它会更早抛出异常)并且您从服务器收到回复:403 HTTP FORBIDDEN

是否有某种登录方式?请检查您是否可以在同一设备/模拟器上的浏览器中打开相同的 URL。

于 2010-11-23T19:14:24.990 回答
0

我尝试从头开始创建一个新项目,只使用一个使用 Jsoup.connect() 方法的 hello world 屏幕,并且在同一个 1.6 模拟器上运行良好,所以它一定是代码问题,但我想不通.

尝试在应用程序启动的早期测试使用此功能(或者如果这导致 ANR 超时,请添加“测试”按钮)

复制您的应用程序并注释掉很多东西

在有效的最小测试和无效的完整应用程序之间的某个地方,存在一个重要的区别。递归地划分差异并征服它......

于 2010-11-22T20:28:56.720 回答
0

尝试在脚本末尾附近插入 /uses-sdk 或尝试删除 /uses-permission 并用尖括号括起来

于 2010-11-22T16:30:41.813 回答