React-native: تعذر الاتصال بخادم التطوير على محاكي android وعلى جهاز حقيقي

تم إنشاؤها على ٦ أغسطس ٢٠١٧  ·  139تعليقات  ·  مصدر: facebook/react-native

يُرجى عدم حذف هذا النموذج حتى تقرأ القسم الأول.

هل هذا تقرير الشوائب؟

إنها مشكلة أواجهها أثناء تشغيل مشروع Awesome العادي على نظامي

إذا أجبت بـ "نعم": نتوقع أن يستغرق الأمر حوالي 30 دقيقة لإنتاج تقرير خطأ عالي الجودة. على الرغم من أن هذا قد يبدو كثيرًا ، إلا أن الاهتمام بالمشكلات يساعدنا في إصلاحها بشكل أسرع. بالنسبة لتقارير الأخطاء ، يلزم ملء بقية هذا النموذج ، وإلا سيتم إغلاق المشكلة. إذا أجبت بـ "لا": نحن نستخدم مشكلات GitHub حصريًا لتتبع الأخطاء في React Native. إذا كنت تبحث عن مساعدة ، فإن صفحة المجتمع على http://facebook.github.io/react-native/support.html قائمة بالموارد المختلفة التي ينبغي أن تساعدك على البدء. انتقل الآن أدناه!

هل قرأت إرشادات المساهمة ؟

نعم

بيئة

يرجى ملء جميع الحقول ذات الصلة عن طريق تشغيل هذه الأوامر في المحطة.
  1. react-native -v : 0.47.1
  2. node -v : 8.2.1
  3. npm -v : 4.1.2
  4. yarn --version:

ثم حدد:

خطوات التكاثر

(اكتب خطواتك هنا :)

1.افتح موجه الأوامر في وضع المسؤول
2.run الأمر: cd
3.run الأمر: رد فعل أصلي init
4.run الأمر: cd
5.run الأمر: رد فعل أصلي تشغيل الروبوت
هذا يجعل خادم الحزمة يعمل تلقائيًا على المنفذ 8081. لكنني غير قادر على الوصول إلى خادم الحزمة من المتصفح على الجهاز والجوال.
حاولت استخدام http: //: المنفذ / index.android.js
http: // localhost : port
http://127.0.0.1 : المنفذ

=> كنت أحصل على الشاشة الحمراء على كل من الهاتف المحمول والمحاكي بالرسالة التالية:
حاولت تشغيل المشروع على جهاز حقيقي وعلى المحاكي. على كلاهما ، حصلت على خطأ: "تعذر تحميل البرنامج النصي من الأصول" index.android.bundle "تأكد من حزم الحزمة بشكل صحيح أو أنك تقوم بتشغيل خادم الحزمة".

screenshot-1502041340496
screenshot-1502041361543
screenshot-1502041433294

إعادة التحميل تلقيت الخطأ: "تعذر الاتصال بخادم التطوير."

ثم قمت بتعيين المضيف ورقم المنفذ في إعداد التطوير على كليهما وحصلت على الخطأ "تعذر الاتصال بخادم التطوير."

سلوك متوقع

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

ولكن بدلاً من ذلك حصلت على الخطأ وحاولت عدة مرات وأنا أتلقى نفس الخطأ مرارًا وتكرارًا وبنفس النمط.

نسخة تجريبية

(الصق الرابط إلى مثال مشروع وإرشادات دقيقة لإعادة إظهار المشكلة.)

Ran Commands Locked

التعليق الأكثر فائدة

حاول الجري:
adb reverse tcp:8081 tcp:8081
في موجه الأوامر الخاص بك وأعد تشغيل مشروعك بعد ذلك.

ال 139 كومينتر

لا تزال مشكلة مع:
رد فعل 16.0.0 ألفا 6
RN 0.44.3
العقدة 8.2.1
npm 5.3.0
XCode 8.3.3
محاكي iOS 10.3

فهل أحتاج إلى العمل على الإصدار السابق من هذه؟

ألتقي بهذا ، ولا أستطيع التعامل معه ....

شيء خاطئ في الإصدار الأخير؟

هل الحزم يعمل؟ يجب أن ترى أنه يظهر عند تشغيل react-native run-android . يمكنك أيضًا بدء تشغيله بنفسه باستخدام react-native start . أود معرفة ما إذا كانت المشكلة هنا هي أن العبوة لم تبدأ على الإطلاق.

نعم الحزم قيد التشغيل. عندما أقوم بتشغيل الأمر response-native run-android ، يتم فتح نافذة العقدة js تفيد بأن أداة التجميع تعمل على 8081 و "تحميل رسم التبعية. تم"
ولكن عندما أحاول استخدام " localhost: 8081 / index.android.js " على متصفح النظام ، أرى الخطأ "لا يمكن الوصول إلى هذا الموقع".

ولكن عندما أقوم بإنشاء واجهة برمجة تطبيقات nodejs عادية واختبرتها على المتصفح ، يتم فتحها بنجاح.

لدي نفس المشكلة. محاكي iOS يعمل بشكل جيد ، راجع للشغل

كلما حاولت إنشاء مشروع جديد في RN ، يبدو الأمر كما لو أنني أصطدمت بجدار من الأخطاء الجديدة في كل مرة.
المحاولة التالية الشهر المقبل مرة أخرى ، على ما أعتقد ...

المشكلة نفسها. أي شخص يحلها؟

حاول الجري:
adb reverse tcp:8081 tcp:8081
في موجه الأوامر الخاص بك وأعد تشغيل مشروعك بعد ذلك.

ashafizullah : لقد حاولت ذلك أيضًا ؛ لكن لم يحالفنا الحظ.

يحدث على جهازي أيضًا.

لدي USB متصل ، وعكس ADB وتشغيل حزم.

عند فتح الرابط التالي على متصفح الجهاز ، يتم تحميل الحزمة بنجاح:

http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false

لذلك أظن أن هناك خطأ ما في كود Java نفسه.

هل من حل في هذا؟ أنا عالق هنا أيضًا. على مشروع IOS يعمل بشكل مثالي

لقد رأيت نفس المشكلة ، وهذا كل شيء لأن تطبيق android ليس لديه هذا الإذن:

<uses-permission android:name="android.permission.INTERNET" />

لذا تأكد من أن كود Android الخاص بك قادر على الوصول إلى عنوان url البعيد من تطبيقك.

لدي نفس المشكلة لا يمكن لأحد أن يحل ذلك؟

أنا أيضًا أواجه نفس المشكلة ، إذا وجد أحد الحل ، يرجى نشره. شكرا.

لدي نفس المشكلة ، أقوم بحجز adb tcp: 8081 tcp: 8081 ثم أضمن نفس جهاز الكمبيوتر والجوال على الشبكة ، وأنا أقوم بإعداد إعدادات IP: 8081 ، ولكن لم أتمكن من الاتصال بخادم التطوير ، الذي تم حل هذه المشكلة ، شكرًا جزيلاً أنت

مرحبا الناس. لقد استخدمت console.dir () في رد الفعل الأصلي وحصلت على هذا السلوك. وأعتقد أن هذا أمر طبيعي لأن console.dir () هي وظيفة browser.window ولا يوجد متصفح في رد الفعل الأصلي. بعد إزالة console.dir () - يعمل تطبيقي.

أواجه نفس المشكلة على جهاز Mac ، هل من أخبار؟

لدي نفس المشكلة في اختبار الجهاز.

أندرويد 4.1.2

مهلا. يا رفاق ، الذين لديهم إصدار android أقل من 5.0 ، هل حاولت استخدام اتصال wifi بدلاً من USB؟ يبدأ تطبيقي بشكل طبيعي على نظام Android 4.3 (Huawei mediapad T1 8.0) بعد توصيله عبر شبكة wifi

واجهت هذه المشكلة ، بالنسبة لي اتضح أن المنفذ 8081 كان يستخدمه postgresSQL

لدي نفس المشكلة اليوم.
Android 4.4.2 و 6.

نفس المشكلة هنا كذلك. يحدث في كل مرة أعيد فيها فتح جهاز Mac بعد فترة نوم قصيرة. هل حل أي شخص هذا؟
adb reverse tcp:8081 tcp:8081 - لا يبدو أن هذا يعمل بالنسبة لي

screen shot 2017-10-17 at 8 20 03 am

تم حل خطأي عن طريق تغيير حدود inotify.
ساعد هذا الرابط https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

نفس هذه المشكلة ، ساعدني

لدي أيضًا نفس المشكلة أثناء محاولة تشغيلها من المضيف المحلي. إنه يعمل في المتصفح والمحاكي ، ولكن ليس على الجهاز الفعلي

نفس المشكلة هنا لنظام Android ، من كل من الجهاز والمحاكي. يبدو أنه لا يمكن الاتصال بالرازم. القيام بـ "عكس adb ..." للجهاز المادي. يعمل أيضًا على منفذ مخصص ، لذلك يتم تنفيذ "بدء التفاعل الأصلي - المنفذ 8088" ، ثم تعيين عنوان IP: 8088 في إعداد التطوير في التطبيق.

سؤال: هل هناك طريقة للعثور على اتصال خطأ بين التطبيق (على جهازي الذي يعمل بنظام Android) والرازم الذي يعمل على جهاز كمبيوتر يعمل بنظام Windows؟

هذا كل ما أراه هو مؤشرات خطأ نوع "لا يمكن الاتصال" ، ولاحظ عدم وجود رسائل سجل في الحزم. \

تحديث: أظهر تشغيل "adb reverse --list" وجود إدخالين عكسيين. يبدو بعد أن صححت هذه الأشياء عملت. لا يزال لدي "صفحة بيضاء" فقط ، ولكن أعتقد أن هذه مشكلة أخرى ..

نفس المشكلة مع Android ، يعمل iOS ...

كيف يمكن أن يحدث هذا
واجهت نفس المشكلة أيضًا ،
ولكن في السابق كان كل شيء يعمل بشكل جيد بالنسبة لي
ثم أحصل على حلقة لا نهائية تجعل سطح المكتب بطيئًا للغاية
لذلك قررت إغلاق المحاكي ومجمع المترو الذي أحصل عليه من بداية التفاعل الأصلي
لقد جربت هذا الرمز أدناه ولكن لم يحالفني الحظ على الإطلاق
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

كان يواجه نفس المشكلة ويضيع يومين وراء ذلك. تبين أن المنفذ الافتراضي 8081 قد تم حظره على جهازي. تم تغيير المنفذ وفقًا للإرشادات الواردة هنا https://github.com/facebook/react-native/issues/10715 وهو يعمل الآن.

هل يمكنكم يا رفاق محاولة فتح عنوان URL هذا على متصفح الويب الخاص بالجهاز؟

http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false

kevinresol ، إذا قال مدير الحزم إنها بدأت في المنفذ 8081 ولم تتمكن من الوصول إليه من المتصفح ، فمن المرجح أن المنفذ محظور بواسطة جدار الحماية الخاص بك. ما عليك سوى محاولة تغيير المنفذ الافتراضي أو معرفة ما إذا كان يمكنك فتح المنفذ.

كما هو مذكور في رسالتي السابقة ، يمكنني الوصول إلى الحزمة من خلال متصفح الجهاز.

أواجه نفس المشكلة بالضبط مثل @ kevinresol. يمكنني رؤية الحزمة في المتصفح ، لكن الخطأ استمر. أنا أستخدم برنامج محاكاة ، لكنني ما زلت أحاول عكس adb ، لكن لم يحالفني الحظ.

@ bruno02100 إذا كنت تستخدم نظام Windows وتقوم بالوصول عبر شبكة wifi ، فحاول تعطيل جدار الحماية الخاص بك. انظر إذا كان هذا يحل المشكلة.

jerrykurian أنا على جهاز Mac بتشغيل محاكي android ، جدار الحماية الخاص بي معطل بالفعل. إنه أمر غريب حقًا.

بعد التهيئة Debug server host & port for device إلى 192.168.x.x:8081 في Dev Settings (شارك الهاتف ، ستظهر القائمة المنبثقة)
إنه عمل بالنسبة لي

ملاحظة: لا داعي لإنشاء أي حزمة يدويًا ، سيتم بناؤها تلقائيًا عند الاتصال بنجاح

أعتقد أن أي مشكلة في wifi أو حل wifi خارجة عن الموضوع. كان OP يتحدث عن الاتصال بـ localhost عبر USB باستخدام adb reverse

لقد لاحظت أن هذا الخطأ يحدث فقط بعد تشغيل المحاكي لبعض الوقت. حتى الآن في كل مرة ينبثق فيها هذا الخطأ ، أقوم بإعادة تشغيل المحاكي وتشغيل android-android التفاعلي. إنه أمر مزعج حقًا ولكن ليس لدي متسع من الوقت للنظر في هذا الأمر ، لذا سيتعين علي القيام بذلك.

يمكنني الاتصال بخادم التطوير بعد الإنشاء عبر استوديوهات android ولكن إذا قمت بتحديث الكود عندما أقوم بتحرير الكود ، فلا يمكن توصيل جهازي أو المحاكي بالخادم.

تبعياتي
"رد فعل": "16.0.0"،
"تفاعل أصلي": "0.50.4"،

يمكنني أن أؤكد أن حل xlebenny لإعداد مضيف خادم التصحيح يدويًا ومنفذًا على الجهاز يعمل معي في مشروع CRNA الذي تم إخراجه حديثًا.

خطوة بخطوة لإخراج CRNA وتشغيله على Android

في المحطة:

  1. create-react-native-app myApp
  2. cd myApp
  3. yarn run eject (لقد استخدمت الخيارات الافتراضية "مشروع React Native العادي")
  4. react-native run-android

(الآن يجب تجميع التطبيق وتثبيته على الهاتف)

علي الهاتف:

  1. قم بتشغيل التطبيق (توقع رؤية شاشة الخطأ الحمراء! - انقر فوق زر استبعاد في أسفل اليسار)
  2. هز الهاتف واختر إعدادات Dev
  3. اختر مضيف ومنفذ خادم تصحيح الأخطاء للجهاز وقم بتعيينه على 192.168.xx: 8081 (اجعله عنوان IP الفعلي للشبكة المحلية بالطبع)
  4. أعد تشغيل التطبيق على الهاتف وسترى الشريط الأخضر في الأعلى "جارٍ التحميل من 192.168.xx: 8081 ..."
  5. يجب أن تشاهد أيضًا بعض الإجراءات "Bundling index.js " في Metro Bundler (التي فتحت عند تشغيل react-native run-android )
  6. بعد انتهاء الحزمة ، يجب أن يكون التطبيق قيد التشغيل على جهاز Android الخاص بك!

لا يزال Live Reload (عند تغيير ملفات المصدر) ممكنًا - فقط هز الهاتف والمس "Enable Live Reload"

ashafizullah هل يمكن أن تشرح كيف حل هذا الأمر المشكلة. شكرا

@ plong0 حلها بالنسبة لي!

كما أشار @ bruno02100 ، يبدو أن هذا الخطأ يظهر في حالة فتح الجهاز لفترة طويلة من الزمن. أدى تعطيل التمهيد السريع في إعداد المحاكي إلى حله بالنسبة لي 👍

اكتب adb shell ، ومعرفة ما إذا كان يستمع على خادمك المحلي؟ قم بإعداد عنوان IP الخاص بالخادم والمنفذ في إعدادات التطوير. يجب إصلاح ذلك.

@ plong0 شكرا للمساعدة لكنها لم تساعدني.
لا يمكنني تشغيل تطبيقي على جهاز android باستخدام MAC.

ramintagizade - كيف أتحقق مما إذا كان التطبيق يستمع على خادمي المحلي؟ ما هو الأمر:
adb shell [command] ؟

نعم ، adb shell و netstat.

بناءً على هذا http://facebook.github.io/react-native/docs/running-on-device.html

قم بالوصول إلى عنوان IP المحلي الخاص بك (على سبيل المثال: http://192.168.43.188:8081/) من متصفحك وتأكد من ظهوره

React Native packager قيد التشغيل.
قم بزيارة الوثائق

ثم قم بالوصول إلى إعدادات dev في المحاكي الخاص بك:
dev-settings

لمستخدمي Mac يمكنك اتباع الخطوات التالية ،
الخطوة 1: قم بتشغيل "adb reverse tcp: 8081 tcp: 8081 "
الخطوة 2: اضغط على "أمر m"
الخطوة الثالثة: اضغط على "إعدادات التطوير"
الخطوة 4: اضغط على "Debug server host & port for device"
الخطوة 5: في النافذة المنبثقة ، أدخل "10.0.2.2:${port_id}" في قسم "port_id" ، استخدم المنفذ الذي تقوم بتشغيل التطبيق الخاص بك.
الخطوة 6: الآن قم بتشغيل "React-native run-android"

إذا كنت تحاول تصحيح أخطاء التطبيق في جهاز Android الفعلي عبر wifi باستخدام جهاز windows ، فقد لا يتمكن الجهاز من الوصول إلى منفذ جهاز الكمبيوتر أو الكمبيوتر المحمول ،
عليك أن تجعل الوصول إلى المنفذ متاحًا. هذا ينطوي على خطوتين:

1- قم أولاً بإنشاء قاعدة في جدار الحماية. للقيام بذلك ، اتبع الخطوات التالية:

""
فتح حوار التشغيل
- نوع wf.msc
-انقر على القواعد الواردة
-انقر فوق قاعدة جديدة على الجانب الأيمن
-حدد المنفذ من القائمة المنبثقة وانقر فوق التالي
-حدد منفذ tcp ومنافذ محلية محددة وأدخل رقم المنفذ مثل 8081 (افتراضي)
- السماح بالاتصال
-اختر الكل في قسم الملف الشخصي
- أعطِ بعض الاسم والوصف المناسبين
-انقر فوق إنهاء

  1. عليك أن تجعل جهاز الكمبيوتر الخاص بك متاحًا للخارج ، للقيام بذلك ، اتبع الخطوات التالية:
    - شبكة مفتوحة ومركز مشاركة من لوحة التحكم
    -إعدادات محول التغيير
    -اختر شبكة wifi الخاصة بك
    انقر بزر الماوس الأيمن فوق الخصائص
    -انقر فوق علامة تبويب المشاركة
    -تحقق من جميع مربعات الاختيار

أنت على ما يرام ، حاول الآن تشغيل android-android-active التفاعلي.

واجهت مشكلة مماثلة ، على الرغم من أنني أدركت لاحقًا أن جهازي الذي تمت محاكاته (android) لم يكن به اتصال بالإنترنت (أو شبكة) على الإطلاق. لم يكن به رمز WiFi أو LTE على الإطلاق. إعادة تشغيل المحاكي لم يحل المشكلة ، ولكن وضعه في وضع الطائرة وإيقاف تشغيل وضع الطائرة مرة أخرى حلها. قد يكون خطأً عامًا في android يتعلق بفقدان الاتصال بالشبكة في حالتي.

لقد واجهنا هذه المشكلة ، لحل هذه المشكلة ، الحل بسيط للغاية أدناه.

  1. قم بإلغاء العملية الحالية لـ "تفاعل-تشغيل-أندرويد" بواسطة CTRL + C
    أو CMD + C
  2. إغلاق سطر أوامر نافذة مجمّع المترو الذي تم فتحه
    تلقائيا.
  3. قم بتشغيل الأمر مرة أخرى ، "response-native run-android".

يشير هذا الخطأ بشكل أساسي إلى فشل الإنشاء الحالي لأسباب مثل مشكلة الرمز أو مشكلة التبعية.

انقر هنا لمزيد من التفاصيل

لست متأكدًا من سبب مشكلتي مع محاكيات Android على macOS. ربما تقوم بإعداد Android AVD جديد أو تثبيت العديد من تحديثات Android Studio؟

كان هذا الأمر معلقًا:
watchman watch-del-all

أدى هذا إلى حل المشكلة بالنسبة لي:
""
الشراب إلغاء الحارس
الشراب تثبيت الحارس

وفقط للتأكد من الحارس حذف عدم الشنق

الحارس ساعة ديل جميع
""

يمكنني حل هذه المشكلة عن طريق إعادة تشغيل المحاكي أخيرًا.

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

أتمنى أن تساعد

أهلا بكم،
لقد وجدت نفس المشكلة أثناء التشغيل في بيئة windows والمحاكاة باستخدام محاكي android.
بعد إجراء بعض التجارب والخطأ ، وجدت الحل على النحو التالي:

1 >> غيّر المنفذ في "node_modules \ reaction-native \ local-cliserverserver.js" من الوضع الافتراضي:

process.env.RCT_METRO_PORT || 8081

ل

الافتراضي: process.env.RCT_METRO_PORT || 9088

إذا تم حظر المنفذ أو إصداره لبعض التطبيقات الأخرى.
ملاحظة : يمكنك اختيار أي رقم منفذ ، لقد اخترت 9088
2 >> قم بتشغيل الأمر response-native run-android --port 9088 (ضع رقم المنفذ الخاص بك هنا). يجب إرسال هذا المنفذ إلى adb قيد التشغيل ، بحيث يكون كل من الخادم و adb في نفس المنفذ.
3 >> الآن في Android studio simulator ، اضغط على Ctrl + m ، للانتقال إلى " Dev Setting " ، ثم حدد Debug Server port & host for Device ، واضبط " localhost: 9088 ".
4 >> افتح وحدة تحكم المطور في الكروم باستخدام عنوان url http: // localhost : 9088 / debugger-ui /

سيبدأ الآن في تحميل التغييرات التي تجريها في تطبيقك.

استمتع بالبرمجة الآن :)

شكرا لنشر هذه! يبدو أنك ربما لا تستخدم أحدث إصدار من React Native ، v0.53.0 ، الذي تم إصداره في يناير 2018. هل يمكنك التأكد من استمرار إمكانية تكرار هذه المشكلة في أحدث إصدار؟

سأغلق هذا ، ولكن لا تتردد في فتح إصدار جديد إذا كنت قادرًا على تأكيد أن هذه لا تزال مشكلة في الإصدار 0.53.0 أو أحدث.

كيفية المساهمةما يمكن توقعه من القائمين بالرعاية

نعم ، أنا أستخدم "تفاعل أصلي": "0.53.0".

ولكن ظهرت هذه المشكلة عندما كنت أستخدم الوكيل الداخلي للشركة. قد تكون بعض المنافذ مسدودة أو مستخدمة من قبل الشركات. لذلك استخدمت هذه الطريقة للحل. ونشرها هنا ليتمكن الآخرون من حل هذه المشكلة.

نفس المشكلة على جهاز Android الحقيقي .. الإصدار 5.1.1

ما عليك سوى فتح موجه الأوامر والانتقال إلى دليل المشروع فقط اكتب "الغزل" واضغط على "إدخال كل شيء سيكون على ما يرام

ashafizullah حله يعمل !!!!

سواء كان جهاز محاكاة أو جهازًا حقيقيًا ، لنظام Android ، ما عليك سوى القيام بما يلي:
image

Alijaaan نفس المشكلة التي كنت أواجهها على ما يبدو. شكرا!

الحل الوحيد الذي وجدته هو من Android studio AVD Manager ، وإزالة المحاكي الحالي وإضافة واحد جديد. بدأ الجميع العمل مرة أخرى.

شكرا جزيلاAlijaaan
كان يستخدم إعداد وكيل Android Studio.
image
قمت بإلغاء تحديد "استخدام إعداد وكيل استوديو Android" ثم حددت "بدون وكيل". كل شيء على ما يرام الآن.

تعليق esutton حل مشكلتي.

مراقب راجع للشغل هو برنامجي المفضل. كنت دائمًا سعيدًا بإيقاف يومي مؤقتًا لبضع ساعات للبحث عن مشكلات RN العشوائية وإدراك كل ما أحتاج إليه هو تشغيل watchman watch-del-all . الآن حتى هذا الأمر معلق وعلينا إعادة تثبيته من حين لآخر ، فأنا مطور أكثر سعادة.

رد فعل-أصلي-تشغيل-android - عمل المنفذ 9088 بالنسبة لي. شكرا @ Louies89

أجد الحل
1.إيقاف تشغيل برنامج مكافحة الفيروسات الخاص بي
2 قم بإغلاق جدار الحماية الخاص بي

أعتقد أنها مشكلة في التغييرات الأخيرة في الكود ، خاصة إذا كنت تستخدم مكتبة تابعة لجهة خارجية مثل القاعدة الأصلية. ما فعلته ، عدت بضع خطوات Ctrl + z ، وقم بإلغاء تثبيت التطبيق من المحاكي وإعادة تشغيله. ثم رد فعل الروبوت تشغيل الأصلي ، ويعمل كل شيء! ربما يكون له علاقة بالتخزين المؤقت للمحاكي

@ pinchez254 أتفق معك ، الجولة الأولى ستكون دائمًا على ما يرام.

يرجى بدء تشغيل خادم npm باستخدام الأمر npm start

مرحبًا ، لقد وضعت عنوان IP لجهاز الكمبيوتر الخاص بي في Dev Setting (192.168.1.103:8081) وأنشأت قاعدة واردة في جدار الحماية للوصول إلى منفذ 8081 tcp ، ولكن تلقيت هذا الخطأ:
"could not connect to development serve"
ايضا
عند كتابة المتصفح "http://localhost:8081/index.delta?platform=android&dev=true&minify=false" ، بدأ البناء وانتهى بنجاح!

بالنسبة لي الجري:

  1. adb reverse tcp:8081 tcp:8081
  2. react-native start --reset-cache
  3. react-native run-android

فعل الحيلة

اضطررت إلى فتح محطتين.
الجولة الأولى
sudo npm start
بعد الجري
react-native run-ios

  1. تأكد من أن الكمبيوتر المحمول وهاتفك متصلان بشبكة Wi-Fi نفسها.
  2. انتقل إلى مجلد المشروع الخاص بك من خلال shell. ثم قم بتشغيل react-native run-android ، react-native start --port=8088
  3. افتح تطبيق React Native على جهازك.
  4. افتح قائمة المطور داخل التطبيق. اضغط على [cmd] + [M] ([Ctrl] + [M] للنوافذ)]
  5. انتقل إلى Dev Settings → Debug server host للجهاز.
  6. اكتب عنوان IP الخاص بجهازك ومنفذ خادم التطوير المحلي (مثل 192.168.1.100:8088).
  7. ارجع إلى قائمة Developer وحدد Reload JS.

react-native run-android --port=8081 :)

كانت الطريقة الوحيدة التي تمكنت من حلها هي - البحث في جميع الإشارات إلى المنفذ 8081 والتغيير إلى 9088 (غير مستخدم) والبدء بـ - المنفذ 9088. كما قمت بتغيير إعداد Dev إلى المنفذ 9088. كانت هناك إشارات قليلة إلى المنفذ 8081 باعتباره افتراضيًا في node_module / رد فعل أصلي دير. تم استخدام المنفذ 8081 بواسطة حارس الفيروسات في بيئتي.

بالنسبة لي ، لم يتم تثبيت أدوات منصة Android. لذلك قمت بالتثبيت باستخدام الأمر التالي.
براميل المشروب تثبيت أدوات android-platform-tools

بعد ذلك ، تم التشغيل من Android studio أو سطر الأوامر باستخدام android android * الذي يعمل بنظام رد الفعل الأصلي

أدت إعادة تشغيل جهاز Mac إلى حل المشكلة بالنسبة لي ، ولا توجد فكرة عن السبب

أولاً ، بعد التأكد من أنك في ملف مشروعك ، يساعدني هذا الحل:
react-native start
على الأرجح ستحصل على خطأ في رمز ENOSPC
في هذه الحالة ، استخدم هذا الرمز:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
بعد ذلك ، تقوم بتشغيل react-native start مرة أخرى ، ومن المرجح أن يكون قد تم حل خطأ ENOSPC الخاص بك.
بعد ذلك ، ما عليك سوى تشغيل react-native run-android
ها أنت ذا ، إنه يعمل بالنسبة لي في نظام Linux مع محاكي android من android studio

كنت أواجه هذا الخطأ ،
لقد وجدت حلا بفعل هذا.
أولاً قمت بحذف جميع وحدات العقدة.
sudo rm -rf node_modules/
ثم قمت بتثبيت حزم npm
npm install

ثم أقوم بتشغيل هذا الأمر للتحقق من أن حزم التفاعل جيدة.

react-native start

يظهر لي أن الحزم على ما يرام ثم أقوم بتشغيل android مع الجذر

react-native run-android --root

ثم وجدت أن هذا يعمل.

لاحظ أيضًا أنه اعتبارًا من Android 9 ، يُحظر نقل HTTP (غير HTTPS) افتراضيًا. لتمكين الاتصال بخادم التطوير من جهاز يقوم بتشغيل تطبيقك ، أضف هذه السمة إلى العنصر application في ملف _AndroidManifest.xml_:

android:usesCleartextTraffic="true"

مزيد من المعلومات حول مشكلة Stackoverflow هذه

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

لسوء الحظ ، تبتلع أدوات التطوير الأصلية للتفاعل سبب الخطأ ، لكنها تظهر إذا حاولت إنشاء اتصال HTTP الخاص بك داخل التطبيق الهدف حيث ستحصل على تتبع مكدس مفيد.

delj هذا أمر مؤسف أن رد فعل أدوات التطوير الأصلية تبتلع سبب الخطأ.

نصيحة: استخدم manifestPlaceholders لمنع إصدار إصدار باستخدام android: الاستخداماتCleartextTraffic = "true"

AndroidManifest.xml
""
android: name = ".MainApplication"

android:usesCleartextTraffic="${isDebug}"
    >

""

android / app / build.gradle

 buildTypes {
 تصحيح {
 manifestPlaceholders = [isDebug: true]
 }
 إطلاق سراح {
 manifestPlaceholders = [isDebug: false]

        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        signingConfig signingConfigs.release
    }
}

واجهت نفس المشكلة وما نجح بالنسبة لي على نظام التشغيل Windows 10 هو حرفياً مجرد فتح CMD كمسؤول.

لا يزال لدي هذه المشكلة. هل يمكننا فتح هذا النسخ الاحتياطي. هذا سخيف تمامًا ، كيف يكون برنامجًا تعليميًا "البدء" إذا اتبعت الخطوات حرفياً ولم يبدأ. لقد قضيت ساعات حرفيًا في هذا الخطأ. يحتاج Facebook إلى معالجة هذا. إما أن يكون البرنامج التعليمي الخاص بهم مجرد PURE WRONG أو حالات استكشاف الأخطاء وإصلاحها المعروفة التي يمكنهم الارتباط بها.

ها هي خطواتي:

  1. المحطة 1: عكس adb tcp: 8081 tcp: 8081
  2. المحطة 1: بدء npm
  3. رد فعل أصلي تشغيل الروبوت

لا تزال هذه المشكلة. حاولت أيضًا إضافة قيمة المنفذ عندما أقوم بالخطوة 3 ، لكن هذا لم ينجح أيضًا. هل يمكن لأي شخص الرجاء المساعدة.

أنا أتعاطف تمامًا - لقد أمضينا ساعة في إصلاح هذا أيضًا.

يعمل هذا مع جهاز المحاكاة وأعتقد أن نفس الأسلوب يجب أن يعمل مع جهازك

هناك بعض المشكلات التي تحدث هنا ، وأهمها إعداد النص العادي. قبل أن تفعل أي شيء ، قم بتحديث تطبيقك إلى أحدث إصدار من Android SDK وإلا فلن تعمل هذه الإعدادات. لاختبار ما إذا كانت لديك هذه المشكلة ، قم بإلصاق هذا الرمز في إحدى وظائف العرض العليا. على سبيل المثال ، <App

fetch('http://jofarnold.com')
  .then(res => res.text())
  .then(d => alert('ok'))
  .catch(e => {
    console.error(String(e));
});

لاحظ http وليس https . نعم ، موقعي ليس http. لكن في الوقت الحالي لا أشعر بأي ندم!

جرب الان

fetch('https://httpbin.org')
  .then(res => res.text())
  .then(d => alert('ok'))
  .catch(e => {
    console.error(String(e));
});

لاحظ http s .

أي واحد فشل؟ إذا فشل كلاهما ، فلديك مشاكل أخرى ولا يمكنني مساعدتك - لكن حاول معرفة ما إذا كانت عناوين url هذه تعمل في Chrome في جهاز المحاكاة لاستبعاد عدم عمل الشبكة. إذا فشل الأول (سيعطي رد فعل أصليًا) ولكن نجح الثاني (سيتم تنبيهه بـ ok ) فأنت لم تقم بإعداد إعدادات أمان Android بشكل صحيح. لذلك دعونا نفعل ذلك.

أولاً ، أدخل ما يلي في android /.../ AndroidManifest.xml في قسم <application

<manifest
....
<application
... other settings
    android:usesCleartextTraffic="true"  <---------- this
    android:networkSecurityConfig="@xml/network_security_config" <------- and this
  >
   ... etc

ثم أنشئ ملفًا على android / ... res / xml / network_security_config.xml (قد تحتاج إلى إضافة دليل xml: اسم الملف ليس شيئًا خاصًا - يجب أن يكون هو نفسه المرجع أعلاه) مثل هذا :

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">jofarnold.com</domain>
    </domain-config>
</network-security-config>

أعد التحويل البرمجي مع التأكد من قيامك بعمل react-native start --reset-cache في محطة طرفية واحدة (مع ملاحظة إعادة التخزين المؤقت) و react-native run-android في محطة أخرى.

الآن تقوم بتحميل التطبيق وستحصل على نافذة منبثقة جيدة. أشياء جيدة! لقد تمكنت من الوصول إلى موقعي غير الآمن في fetch .

الآن علينا أن نفرز رد الفعل الأصلي. بالنسبة لي ، الخادم هو 10.0.2.2 ومصحح الأخطاء في المضيف المحلي أو شيء من هذا القبيل (لا أتذكر ؛ أنا أكتب هذا من الذاكرة جزئيًا). في كلتا الحالتين هما مختلفان وبالتالي لا يعمل.

لهذا ، قم بتغيير jofarnold.com أعلاه إلى localhost ثم انتقل إلى قائمة الإعدادات في التطبيق (cmd-M على mac)> إعدادات Dev. أوقف تشغيل "Use JS Deltas" (لا يعمل بشكل جيد) وتحت تصحيح الأخطاء ، اضبط مضيف الخادم والمنفذ على localhost:8081

يجب أن يبدو ملف تكوين الأمان الخاص بك على النحو التالي:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
    </domain-config>
</network-security-config>

أعد التحويل البرمجي ، وأعد تشغيل react-native start --reset-cache وستحصل على الشريط الأخضر في الجزء العلوي من التطبيق مع loading... أو أيًا كان. في المحطة ، يجب أن تراها مجمعة مع Delta و Map وما إلى ذلك.

لست بحاجة إلى القيام بالأشياء التي أعتقد أنها adb reverse . يتم ذلك كجزء من البرامج النصية لـ RN على أي حال.

حظا طيبا وفقك الله!

كانت مشكلتي بسبب قطع محاكي android الخاص بي عن Wifi والبيانات. لقد قمت للتو بتشغيل هذه وهي تعمل. نأمل أن يساعد إذا كان أي شخص يواجه نفس المشكلة.

image

كانت مشكلتي بسبب قطع محاكي android الخاص بي عن Wifi والبيانات. لقد قمت للتو بتشغيل هذه وهي تعمل. نأمل أن يساعد إذا كان أي شخص يواجه نفس المشكلة.

شيء مهم يجب أن أضيفه إلى تعليق ماتيو ؛ إذا أغلقت جهاز MacBook واستأنفت العمل على شبكة wifi أخرى ، فقد يتسبب ذلك في فشل "wifi" لجهاز المحاكاة. يجب عليك إعادة تشغيل جهاز المحاكاة. أعلم أن هذه ليست مشكلة خاصة بالمحاكاة على وجه التحديد ، لكنها تحتوي على مُحسنات محركات بحث جيدة لهذا الموضوع ، لذا نأمل أن يساعد ترك هذا التعليق هنا شخصًا آخر.

تم حلها باستخدام android 5.0 أو أعلى ، حصلت على خطأ في android 4..4

تم حلها باستخدام android 5.0 أو أعلى ، حصلت على خطأ في android 4..4

أنا موافق

إذا كنت تقوم بتشغيل محاكي android 9 ، فيجب عليك إضافة ، كما هو موضح بواسطة delj ، android:usesCleartextTraffic="true" في علامة التطبيق الخاصة بك في manifest.xml

هل الحزم يعمل؟ يجب أن ترى أنه يظهر عند تشغيل react-native run-android . يمكنك أيضًا بدء تشغيله بنفسه باستخدام react-native start . أود معرفة ما إذا كانت المشكلة هنا هي أن العبوة لم تبدأ على الإطلاق.

لماذا تحدث هذه المشكلة ؟؟ لدي جهاز Mac يعمل بنظام التشغيل 10.13.6 وقبل أن يبدأ الخادم تلقائيًا

شكرًا JofBigHealth لقد فعلت ما اقترحته وهو يعمل على المحاكي وجهاز الاتصال الحقيقي.
لكني أواجه مشاكل مع التطبيق عندما أقوم بتنزيله من قناة ألفا. هل لديك أي اقتراحات لتصحيحها؟

@ sheva007 لست متأكدًا مما تقصده بـ "قناة ألفا". هل يمكنك شرح وتضمين المزيد من التفاصيل حول المشكلات التي تواجهها على وجه التحديد؟

JofBigHealth آسف على المعلومات المفقودة.
تحديث: لقد نجح الأمر الآن ، كان علي الانتظار لبعض الوقت حتى يتيح Google Play إصدار العمل المحدث للمختبرين. شكرا جزيلا :)
كانت مشكلتي الأصلية أن التطبيق يعمل بشكل جيد <Android 9 ولكنه لن يقوم بإجراء مكالمة شبكة باستخدام Android 9 ، عندما استخدمت الحل الذي تقدمه ، يعمل التطبيق بما في ذلك مكالمات الشبكة كما هو متوقع.
ولكن عندما أرسلته إلى Google Play Alpha Channel. لا يقوم بإجراء مكالمات الشبكة.

عكس المنافذ يعمل بالنسبة لي
كما اقترح ashafizullah

أدى إغلاق Android Studio ، الذي فتحته ، إلى حل المشكلة بالنسبة لي بشكل غريب. غير مؤكد لماذا ...

تحديث: للمحاكاة اعتبارًا من الترقية إلى 0.57.7 لم أجد أنه من الضروري إجراء إصلاح الوكيل العكسي adb ، ولا تغيير المنفذ في قائمة المطور. يتم تعيينه افتراضيًا على شيء مثل 10.0.1.1:8080 (تخمين من الذاكرة) و Just Works. أدير react-native start أو react-native start --reset-cache (إذا لزم الأمر) وأقوم بالبناء من Android Studio وهو يعمل بشكل جيد. إذا قمت بضبطه على تصحيح الأخطاء ، فيجب أن يكون لديك مصحح أخطاء قيد التشغيل وقد تحتاج إلى إعادة البناء مرة أخرى من Android Studio لأنه في بعض الأحيان لا يتصل للمرة الأولى (بسبب ما أظن أنه حالة سباق) ولكنه جيد بخلاف ذلك. فقط تذكر أن تقوم بتعيين إعدادات الأمان بشكل صحيح في بيان التطبيق

الجهاز أمر آخر.

لديك نفس المشكلة عند محاولة التشغيل على الجهاز. هل يوجد حل للجهاز؟

لدي نفس المشكلة. ساعدني من فضلك.

يجب عليك إضافة مسار إلى متغيرات البيئة الخاصة بك ... مسار "adb" يمكنك العثور عليه في C: Users \ user \ AppData \ Local \ Android \ Sdk / platformtools

نجح ذلك بالنسبة لي على نظام التشغيل Windows 10: (بعد إعداد منفذ ومضيف خادم التصحيح ..)
لقد تحققت من إعدادات جدار الحماية (جدار حماية Windows> السماح لتطبيق أو ميزة من خلال جدار حماية Windows) واكتشفت أن هناك تطبيقين Node.js ولكن أحدهما غير مسموح به عبر جدار الحماية! حدد المربع وحفظه ثم عمل كل شيء كما ينبغي!

إذا كنت تقوم بتشغيل محاكي android 9 ، فيجب عليك إضافة ، كما هو موضح بواسطة delj ، android:usesCleartextTraffic="true" في علامة التطبيق الخاصة بك في manifest.xml

موصى به

نفس الخطأ.
windows7 + android studio3.3.2.
خادم العقدة نشط ويمكنني vivsit 127.0.0.1 من محاكي الكروم ، لكن التطبيق Awesome لا يمكنه الاتصال بخادم العقدة.
أضفت أيضًا android:usesCleartextTraffic="true" إلى AndroidManisfesto.xml ، ولكن ما زلت أتلقى الخطأ

image
image
image
image
image
image
image
image

aflext هل قمت بتشغيل الأمر adb reverse tcp:8081 tcp:8081 في المربع الأحمر؟ هذا عادة ما يعمل.

JofBigHealth عن طريق تغيير عنوان url من 127.0.0.1:8081 إلى localhost:8081 تم حله.

في حالتي كان الحل تعطيل / تمكين "Debug JS عن بُعد"

ashafizullah : لقد حاولت ذلك أيضًا ؛ لكن لم يحالفنا الحظ.

ashafizullah نعم هذا لا يعمل لي أيضا.

ممكن تشغيل هذا المشروع من خلال الويندوز ؟؟؟؟

تم حل خطأي عن طريق تغيير حدود inotify.
ساعد هذا الرابط https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

هذا يعمل!! شكر كثيرا!!

تم حل خطأي عن طريق تغيير حدود inotify.
ساعد هذا الرابط https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

هذا عمل لي. شكرا يا رجل.

أضفت android:usesCleartextTraffic="true" إلى AndroidManifest.xml عند علامة <application ... وأعدت بناء التطبيق. بعد ذلك ، بدأ التحميل من خادم dev بشكل طبيعي.

كان هذا يحدث لي لأن المصحح يعمل ومتصل بجهاز آخر. لذلك كان محاكي iOS المتصل بمصحح الأخطاء يمنع جهاز Android من الاتصال بالرازم. سمح إيقاف التصحيح عن بُعد على جهاز محاكاة iOS لجهاز Android بالاتصال ، أو يمكنك أيضًا البدء في تصحيح الأخطاء عن بُعد على جهاز Android أيضًا.

نجح ذلك بالنسبة لي على نظام التشغيل Windows 10: (بعد إعداد منفذ ومضيف خادم التصحيح ..)
لقد تحققت من إعدادات جدار الحماية (جدار حماية Windows> السماح لتطبيق أو ميزة من خلال جدار حماية Windows) واكتشفت أن هناك تطبيقين Node.js ولكن أحدهما غير مسموح به عبر جدار الحماية! حدد المربع وحفظه ثم عمل كل شيء كما ينبغي!

كانت هذه مشكلتي أيضًا ، شكرًا لك!

لقد حللت مع:

https://www.youtube.com/watch؟v=XhiE0HEiYd4

https://stackoverflow.com/questions/44446523/unable-to-load-script-from-assets-index-android-bundle-on-windows

لكن .... عند إعادة تحميل التطبيق في المحاكي ، تعطل مرة أخرى وتظهر الرسالة:
لا يمكن الاتصال بخادم التطوير

لذلك حاولت إضافة node.js و genymotion player.exe في جدار الحماية وإعادة تشغيل الكل (geny، response) ، ويعمل مرة أخرى ...

ctrl + Win cmd سطر أوامر ipconfig للعثور على عنوان ipV4 الخاص بي هو 192.168.0.111 ، بعد ذلك أضع 192.168.0.111:8081 في
image
image

تم حلها بنجاح!

أضفت android:usesCleartextTraffic="true" إلى AndroidManifest.xml عند علامة <application ... وأعدت بناء التطبيق. بعد ذلك ، بدأ التحميل من خادم dev بشكل طبيعي.

هذا أصلحه. شكرا جزيلا.

لديك نفس المشكلة فقط على جهاز android حقيقي.
المحلول:
1) أضف ملف android / app / src / main / res / xml / network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
    </domain-config>
</network-security-config>

2) أضف سطرًا إلى android / app / src / main / AndroidManifest.xml

<application
    ...
    android:networkSecurityConfig="@xml/network_security_config"
    ...
>

ابحث عن العلاج.
ساعدتني هذه المشكلة في حل المشكلة باتباع الخطوات التالية.

  1. (في دليل المشروع) mkdir android / app / src / main / الأصول
  2. حزمة التفاعلات الأصلية - النظام الأساسي android --dev false --entry-file index.js - حزمة الإخراج android / app / src / main / الأصول / index.android.bundle --assets-dest android / app / src / الرئيسية / الدقة
  3. رد فعل أصلي تشغيل الروبوت

https://stackoverflow.com/questions/44446523/unable-to-load-script-from-assets-index-android-bundle-on-windows

لقد نجحت بالنسبة لي بعد تشغيل adb reverse tcp: 8081 tcp: 8081 . في وقت سابق كان يفتح نافذة خادم الحزمة ولكن لم يحدث شيء بعد تحميل الرسم البياني للاعتمادية ، تم الانتهاء منه. رسالة.
الآن كل شيء يعمل بشكل جيد بعد تشغيل الأمر المذكور أعلاه.

هذا ينطبق على Android 9.0+ وفقًا لتكوين أمان الشبكة .
حسنًا ، بعد تجربة جميع الحلول الممكنة التي وجدتها على الويب ، قررت التحقق من نظام Android logcat الأصلي يدويًا. حتى بعد إضافة android:usesCleartextTraffic="true" وجدت هذا في logcat:

06-25 02:32:34.561 32001 32001 E unknown:ReactNative: Caused by: java.net.UnknownServiceException: CLEARTEXT communication to 192.168.29.96 not permitted by network security policy

لذلك ، حاولت فحص مصدر تطبيق التفاعل الأصلي الخاص بي. لقد وجدت أنه في المتغير debug ، يوجد بالفعل تكوين أمان للشبكة والذي تم تحديده من قبل أشخاص أصليين ، يتعارض مع المتغير main .

هناك حل سهل لهذا.
انتقل إلى <app-src>/android/app/src/debug/res/xml/react_native_config.xml
أضف سطرًا جديدًا بعنوان IP الخاص بك في ملفمثل:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="false">localhost</domain>
    <domain includeSubdomains="false">10.0.2.2</domain>
    <domain includeSubdomains="false">10.0.3.2</domain>
    ***<domain includeSubdomains="false">192.168.29.96</domain>***
  </domain-config>
</network-security-config>

نظرًا لأن IP المحلي لجهاز الكمبيوتر الخاص بي (تحقق من ifconfig لـ linux) هو 192.168.29.96 ، فقد أضفت السطر أعلاه في *

بعد ذلك ، تحتاج إلى تنظيف Android وإعادة بنائه!

cd <app-src>/android
./gradlew clean
cd <app-src>
react-native run-android

آمل أن يكون هذا يصلح لك.

ما فعلته: (أعمل على محاكي Android Pie 9)

  1. قم بتعيين IP والمنفذ على Debug server host & port for device بالنقر فوق Ctrl+M و Dev Setting في المحاكي. تأكد من تعيين المضيف والمنفذ باستخدام مضيف ومنفذ Bundler (الافتراضي: localhost:8081 ) وتأكد من عدم حظر المنفذ الخاص بك بواسطة عملية أخرى
  2. قم بتشغيل adb reverse tcp:8081 tcp:8081 في دليل المشروع الرئيسي
  3. أضف عقدة android:usesCleartextTraffic="true" إلى <application> في AndroidManifest.xml
  4. بعد إنجاز النقاط الثلاث أعلاه ، أعد تشغيل مشروعك

@ Eyesonly88 هذا حل المشكلة بالنسبة لي - شكرا لك.

بالنسبة لك الذي يواجه هذه المشكلة على وجه التحديد عند تعيين targetSdkVersion الخاص بك إلى API 28.

كل ما عليك فعله هو إضافة الأسطر التالية أدناه لملف network_security_config الخاص بك:

    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>

ملاحظة: في حالتي ، لدي عدة ملفات network_security_config لكل نكهة ، نظرًا لأن هذه مشكلة في تصحيح الأخطاء ، فإن إضافة هذه السطور إلى ملف network_security_config بنكهة التصحيح كانت كافية.

==================================================== ========================

مزيد من المعلومات حول الخطأ أدناه:

إذا انتقلنا إلى https://developer.android.com/training/articles/security-config.html ، فسنرى أن هذه الأسطر من التعليمات البرمجية أعلاه هي تكوين الأمان الافتراضي لـ android API 24 إلى API 27. (Android 7.0 إلى أندرويد 8.1).
هذا يعني أنه بالنسبة لنظام Android 9 ، API 28 ، وهو الذي كنت أواجه الخطأ ، تغير التكوين الافتراضي.
وبشكل أكثر تحديدًا ، التكوين الافتراضي لـ Android API 28 هو:

    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>

.
هذا هو السبب في أن استخدام التكوين الافتراضي لواجهات برمجة التطبيقات القديمة كان مفيدًا بالنسبة لي.

الشيء الآخر الذي نجح معي أيضًا في البداية هو تعيين targetSdkVersion على api 27. إذا كنت لا تريد التشغيل على API 28 ، فقد يكون هذا مناسبًا لك أيضًا.

إذا كنت تقوم بتشغيل محاكي android 9 ، فيجب عليك إضافة ، كما هو موضح بواسطة delj ، android:usesCleartextTraffic="true" في علامة التطبيق الخاصة بك في manifest.xml

موصى به

حفظت وقتي. شكر كثيرا.

يا رفاق فتحوا wifi على المحاكي وعمل معي

ما حل مشكلتي هو استخدام sudo yarn start بدلاً من yarn start
لدي برنامج نصي في package.json الخاص بي به

{
...
"scripts":{
"start":"react-native start"
}
....
}

إذا كنت تستخدم محاكيًا مثل xCode أو Android Studio ، فلن تحتاج إلى تعيين عنوان خادم dev في الإعدادات باستخدام IP الخاص بك. سيتم تعيينه تلقائيًا. فقط قم بإزالته وإعادة تشغيل التطبيق. إنه يعمل بالنسبة لي.

إذا كنت تقوم بتشغيل محاكي android 9 ، فيجب عليك إضافة ، كما هو موضح بواسطة delj ، android:usesCleartextTraffic="true" في علامة التطبيق الخاصة بك في manifest.xml

موصى به

لقد أنقذت يومي

ما فعلته: (أعمل على محاكي Android Pie 9)

  1. قم بتعيين IP والمنفذ على Debug server host & port for device بالنقر فوق Ctrl+M و Dev Setting في المحاكي. تأكد من تعيين المضيف والمنفذ باستخدام مضيف ومنفذ Bundler (الافتراضي: localhost:8081 ) وتأكد من عدم حظر المنفذ الخاص بك بواسطة عملية أخرى
  2. قم بتشغيل adb reverse tcp:8081 tcp:8081 في دليل المشروع الرئيسي
  3. أضف عقدة android:usesCleartextTraffic="true" إلى <application> في AndroidManifest.xml
  4. بعد إنجاز النقاط الثلاث أعلاه ، أعد تشغيل مشروعك

أستطيع أن أؤكد أن حل rafidamr هو الحل الصحيح. لكنني كنت في بيئة شركة حيث لم أتمكن من استخدام المنفذ 8081 ، لذلك قمت للتو بتحويل Metro Bundler إلى منفذ مختلف مثل:

  • adb reverse tcp:8088 tcp:8088
  • react-native run-android --port 8088

ومن couse ، أشار إلى المنفذ الجديد في إعدادات Dev للمحاكي.

شكرًا لك camposbrunocampos 👏🏼 ، كنت أستخدم target: Android 9.0 مع API level 28 .
تم التحديث network_security_config.xml والآن يعمل المحاكي بشكل جيد.

واجهت مشاكل في بدء تشغيله على iOS و android (تمت تجربته على android studio ، بدون android studio ، مع xcode وبدون xcode). حاولت كل ما سبق ذكره.

إذن ما لم يساعده هو:

  • network_security_config.xml
  • عكس ADB
  • تغيير عنوان IP إلى IP الخاص بالخادم.
  • إلخ..

الشيء الوحيد الذي كان علي فعله هو: بدء sudo npm من رد فعل دليل المشروع الأصلي. يبدو وكأنه مشكلة إذن. (باستخدام ماك)

inspiraluna هذه هي مشكلة تثبيت npm الأساسية ، يجب عليك تغيير مسار نظامك.

أضف android :usesCleartextTraffic = "true" إلى تطبيقك ، في البيان

....
android: الاستخداماتCleartextTraffic = "true"
android: theme = "@ style / AppTheme">

إنه يعمل بالنسبة لي.

أضفت android:usesCleartextTraffic="true" إلى AndroidManifest.xml عند علامة <application ... وأعدت بناء التطبيق. بعد ذلك ، بدأ التحميل من خادم dev بشكل طبيعي.

أدى هذا إلى إصلاح المشكلة بالنسبة لي أيضًا ، لكنني سأقدم ذلك بالقول إنني جربت هذا الإصلاح في البداية ولم ينجح. اضطررت إلى البدء من جديد باستخدام برامج محاكاة جديدة ، وقتل عبد وإعادة تشغيله عدة مرات ، وإعادة تثبيت android studio ، وتحديث gradle ، وما إلى ذلك.

@ Eyesonly88 شكرا لكم .. انها تعمل بالنسبة لي
لقد أضفت
android :usesCleartextTraffic = "true" لـ AndroidManifest.xml

أستهدف Android 4.0 للأسف وعندما أقوم بتشغيل adb reverse tcp: 8081 tcp: 8081 حصلت على خطأ

warn Failed to connect to development server using "adb reverse": Command failed: adb -s 192.168.66.103:5555 reverse tcp:8081 tcp:8081

إليك كيفية إصلاح مشكلة عدم وجود أدوات مطور على المحاكي:
تقترح إجابة SO هذه التحقق من ملف MainApplication.java وإزالة BuildConfig.Debug من طريقة getUseDeveloperSupport ، لذا يبدو كالتالي:

        <strong i="11">@Override</strong>
        public boolean getUseDeveloperSupport() {
            // Return true to load JS from the packager.
            // If BuildConfig.DEBUG is false, assets will be loaded from assets folder.
            return true; // BuildConfig.DEBUG;
        }
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات