CLEARTEXT communication not permitted
نص الخطأ
java.net.UnknownServiceException: CLEARTEXT communication to api.example.com not permitted by network security policy
السبب
من Android 9 فما فوق تُحظر طلبات http:// افتراضيًا. يحاول التطبيق الاتصال بعنوان غير مشفّر.
الحل خطوة بخطوة
- أفضل حل: شغّل الخادم عبر
https://وغيّر العنوان. - للاختبار المحلي فقط أنشئ
network_security_config.xmlواسمح بنطاق محدد (10.0.2.2أوlocalhost). - أشر إلى الملف في
<application android:networkSecurityConfig=...>. - لا تكتب
usesCleartextTraffic="true"لكل الحركة؛ أبقِه في بناء debug فقط. - اختبر APK من نوع release على هاتف حقيقي: قد يتحول خطأ الشبكة إلى شاشة بيضاء.
أوامر للمثال
<!-- res/xml/network_security_config.xml -->
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">10.0.2.2</domain>
</domain-config>
</network-security-config>
<application android:networkSecurityConfig="@xml/network_security_config" ...>كيف لا يتكرر
استخدم HTTPS فقط في release وأبقِ إذن http في مجلد debug.
المؤلف والترخيص: Nibras Code
- APK لا يُثبَّت
- ما هو parse error؟
- ضاع ملف keystore
- التواقيع غير متطابقة
- خطأ في اسم الحزمة
- ملف APK تالف
- Play Protect يحظر التطبيق
- تبدو الحزمة غير صالحة
- لا توجد مساحة كافية
- الهاتف غير متوافق
- النسخة الأقدم لا تُثبَّت
- XAPK لا يُثبَّت
- فشل Gradle sync
- تعذّر حل الاعتمادية (Could not resolve)
- خطأ Duplicate class
- Manifest merger failed
- حد Dex: 65536 دالة
- R8: Missing class
- عدم توافق إصدار JDK
- SDK location not found
- تعارض minSdkVersion
- قيمة compileSdk منخفضة جدًا
- EAS build: فشل Gradle
- خطأ expo prebuild
- Metro: Unable to resolve module
- Hermes: خطأ JS في release فقط
- شاشة بيضاء في release
- شاشة حمراء: لا يتصل بـ Metro
- عدم توافق إصدار Expo SDK
- خطأ Capacitor sync
- Capacitor: شاشة بيضاء
- EAS: خطأ keystore وcredentials
- Keystore tampered / كلمة المرور خاطئة
- اسم alias أو كلمة مرور المفتاح خاطئة
- Play: التوقيع بمفتاح خاطئ
- INSTALL_FAILED_UPDATE_INCOMPATIBLE
- INSTALL_FAILED_VERSION_DOWNGRADE
- INSTALL_FAILED_INSUFFICIENT_STORAGE
- INSTALL_FAILED_NO_MATCHING_ABIS
- خطأ في تحليل الحزمة (Parse error)
- خطأ «App not installed»
- تثبيت ملف AAB على الهاتف
- adb: الجهاز «unauthorized»
- adb: الجهاز غير موجود
- عدم تطابق إصدار خادم adb
- Activity class does not exist
- Play: مستوى targetSdk منخفض
- Play: رفض بسبب سياسة الأذونات
- Play: شرط 64-bit
- Play: versionCode مستخدم من قبل
- انهيار ClassNotFound / NoSuchMethod
- انهيار OutOfMemoryError
- SecurityException: الإذن مرفوض