我正在尝试使用jsoup(1.3.3)在我的android活动中解析一些html。当我调用此代码时
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模拟器中的Web浏览器确实有效,所以我非常有信心问题出现在我的代码中。
我在2.0中是否需要一些额外的权限才能在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模拟器上工作正常,所以它必须是代码问题,但我不能搞清楚。
答案 0 :(得分:1)
JSOUP内部使用HttpURLConnection。这是line throwing exception。
互联网连接正常(或者之前它会抛出异常)并且您收到服务器的回复:403 HTTP FORBIDDEN
是否有某种登录方式?请检查您是否可以在同一设备/模拟器上的浏览器中打开相同的URL。
答案 1 :(得分:0)
尝试在脚本末尾附近插入/ uses-sdk或尝试删除/ uses-permission,每个用尖括号括起来
答案 2 :(得分:0)
我尝试从头开始创建一个新项目,只有一个使用Jsoup.connect()方法的hello world屏幕,并且在同一个1.6模拟器上工作正常,所以它必须是代码问题,但我不能搞清楚。
尝试在应用程序启动时尽早使用此测试用法(或者如果导致ANR超时,请添加“测试”按钮)
复制您的申请并发表很多评论
在您的最小测试和无法完全应用之间的某处,存在重要差异。递归地划分差异并征服它...