上网Android 1.6的不是工作,而是工作中的2.0 / 2.1 / 2.2
-
26-09-2019 - |
题
我试图解析使用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浏览器不工作,所以我非常有信心,这个问题是在我的代码的某个地方。
有一些额外的许可,我需要在1.6上网不要在2.0 +?
需要这是我的manifest文件是如何构成的,它的使用许可权标签的位置有什么影响?
<?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>
我试过从头开始创建只有一个Hello World屏幕一个新项目,使用Jsoup.connect()方法和工作在相同的1.6模拟器罚款,因此它必须是一个代码问题,但我不能弄明白。
解决方案
JSOUP内部使用 HttpURLConnection类。这里是抛绳例外。
在网络连接正常(否则它会较早抛出异常),你都可以从服务器的回复是:的 403 HTTP FORBIDDEN
是否有某种替代登录?做检查,你可以在同一设备/模拟器浏览器中打开相同的URL。
其他提示
尝试插入/用途-SDK附近的脚本的结尾或尝试与每个用尖括号包围删除/用途的许可
我试过从头开始创建只有一个Hello World屏幕一个新项目,使用Jsoup.connect()方法和工作在相同的1.6模拟器罚款,因此它必须是一个代码问题,但我不能弄明白。
尝试把此一测试的使用在应用程序启动时的早期(或如果使一个ANR超时,添加一个“测试”按钮)
请您申请的副本和评论的很多东西了。
您最小的测试,工程和完整的应用程序,没有介于两者之间,其实存在着一个重要的区别。递归分差和征服它...