الوصول إلى الإنترنت لا يعمل في Android 1.6 ، ولكنه يعمل في 2.0/2.1/2.2

StackOverflow https://stackoverflow.com/questions/4219211

  •  26-09-2019
  •  | 
  •  

سؤال

أحاول تحليل بعض HTML باستخدام JSoup (1.3.3) في نشاط Android الخاص بي. عندما أسمي هذا الرمز

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 ، لذا فأنا واثق من أن المشكلة في الكود الخاص بي في مكان ما.

هل هناك بعض الإذن الإضافي الذي أحتاجه للوصول إلى الإنترنت في 1.6 لا تحتاجه في 2.0+؟

هذه هي الطريقة التي يتم بها تنظيم ملف البيان الخاص بي ، هل يكون لموقف علامة الاستخدامات-أي تأثير؟

<?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 ممنوع

هل هناك نوع من تسجيل الدخول في مكانه؟ تحقق من أنه يمكنك فتح عنوان URL نفسه في المتصفح على نفس الجهاز/المحاكي.

نصائح أخرى

حاول الإدراج /الاستخدامات SDK بالقرب من نهاية البرنامج النصي أو محاولة حذف /استخدامات مع كل محاطة بأقواس الزاوية

لقد حاولت إنشاء مشروع جديد من نقطة الصفر مع مجرد شاشة Hello World التي تستخدم طريقة jsoup.connect () والتي تعمل بشكل جيد على نفس المحاكي 1.6 ، لذلك يجب أن تكون مشكلة رمز ولكن لا يمكنني معرفة ذلك .

حاول وضع استخدام اختبار لهذا في وقت مبكر من بدء تشغيل التطبيق (أو إذا كان ذلك يتسبب في مهلة ANR ، أضف زر "اختبار")

قم بعمل نسخة من طلبك وقم بتعليق الكثير من الأشياء

في مكان ما بين الحد الأدنى من الاختبار الذي يعمل وتطبيقك الكامل ، لا يوجد فرق مهم. يقسم الفرق بشكل متكرر وقهره ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top