المشاكل المعروفة في "استوديو Android" ومكوّن Android Gradle الإضافي

تتتبّع هذه الصفحة المشاكل المعروفة في الإصدار 8.3.0 من "استوديو Android" والمكوِّن الإضافي لنظام Gradle المتوافق مع Android. إذا واجهت مشكلة لم يتم تضمينها هنا، يُرجى الإبلاغ عن الخطأ.

الترقية إلى المعاينة: يهدف كل إصدار من "استوديو Android" والمكوِّن الإضافي لنظام Gradle المتوافق مع Android إلى تحسين الثبات والأداء إلى جانب إضافة ميزات جديدة. للتعرُّف على مزايا الإصدارات القادمة الآن، يمكنك تنزيل وتثبيت معاينة "استوديو Android".

المشاكل المعروفة في "استوديو Android"

يصف هذا القسم المشاكل المعروفة التي توجد في أحدث إصدار ثابت من "استوديو Android".

نافذة مساعد Firebase تعرض رسالة خطأ

إذا عرضت نافذة مساعد Firebase (الأدوات > Firebase من القائمة الرئيسية) رسالة خطأ، عليك إلغاء صلاحية ذاكرات التخزين المؤقت وإعادة تشغيل "استوديو Android" لإصلاح الخطأ.

لا يمكن فحص جميع عُقد الإنشاء باستخدام عارض التنسيق

إذا لاحظت أنه ليست كل عُقد Compose قابلة للفحص عند استخدام أداة فحص التنسيق، من المحتمل أن يرجع ذلك إلى خطأ تم إصلاحه في الإصدار 1.5.0-alpha04 من Compose. إذا كنت تواجه هذه المشكلة، يُرجى التأكد من الترقية إلى الإصدار 1.5.0-alpha04 أو الإصدارات الأحدث من Compose.

حدث خطأ أثناء عرض معاينة ComposeAllowed.

بدءًا من Android Studio Chipmunk، إذا كان يظهر لك java.lang.NoSuchFieldError: view_tree_saved_state_registry_owner أو java.lang.ClassNotFoundException: androidx.savedstate.R$id في لوحة المشاكل، احرص على تضمين سمة debugImplementation التابعة إلى androidx.lifecycle:lifecycle-viewmodel-savedstate في الوحدة.

إذا ظهرت لك java.lang.NoSuchFieldError: view_tree_lifecycle_owner في لوحة "المشاكل"، احرص على تضمين السمة debugImplementation التابعة إلى androidx.lifecycle:lifecycle-runtime في الوحدة.

إذا ظهرت لك السمة java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer أو java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener في لوحة المشاكل، احرص على تضمين سمة debugImplementation التابعة إلى androidx.customview:customview-poolingcontainer في وحدتك.

حدث خطأ عند استخدام كلمات مرور مختلفة للمفاتيح وملف تخزين المفاتيح

بدءًا من الإصدار 4.2، يتم تشغيل "استوديو Android" على الإصدار 11 من نظام التشغيل JDK. يؤدي هذا التحديث إلى حدوث تغيير أساسي في السلوك متعلق بتوقيع المفاتيح.

عند الانتقال إلى إنشاء > إنشاء حزمة موقَّعة / حِزمة APK ومحاولة ضبط ميزة توقيع التطبيق لحِزمة تطبيق أو حِزمة APK، قد يؤدي إدخال كلمات مرور مختلفة للمفتاح وملف تخزين المفاتيح إلى حدوث الخطأ التالي:

Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores

للتغلب على هذه المشكلة، أدخل كلمة المرور نفسها لكل من المفتاح وملف تخزين المفاتيح.

لا يبدأ "استوديو Android" بعد تثبيت الإصدار 4.2

يحاول الاستوديو استيراد ملفات .vmoptions السابقة وتنقيحها للعمل مع أداة تجميع البيانات المهملة التي يستخدمها JDK 11. إذا لم تنجح هذه العملية، قد لا يبدأ بيئة التطوير المتكاملة (IDE) لبعض المستخدمين الذين يضبطون خيارات أجهزة افتراضية مخصّصة في ملف .vmoptions.

لحلّ هذه المشكلة، ننصحك بالتعليق على الخيارات المخصّصة في .vmoptions (باستخدام الحرف "#"). يمكن العثور على ملف .vmoptions في المواقع التالية:

نظام التشغيل Windows

C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudio4.2\studio64.exe.vmoptions

نظام التشغيل macOS

~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions

نظام التشغيل Linux

~/.config/Google/AndroidStudio4.2/studio64.vmoptions

إذا استمرّت المشكلة في "استوديو YouTube" بعد تجربة هذا الحل البديل، يمكنك مراجعة القسم لا يبدأ "استوديو YouTube" بعد الترقية أدناه.

تعطّل التطبيقات التي تستخدم "أداة فحص قاعدة البيانات" على محاكي Android 11

قد تتعطّل التطبيقات التي تستخدم "أداة فحص قاعدة البيانات" عند تشغيلها على محاكي Android 11، مع ظهور خطأ مثل ما يلي في أداة Logcat:

 Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

لحلّ هذه المشكلة، عليك ترقية محاكي Android 11 إلى الإصدار 9 أو الإصدارات الأحدث من خلال الانتقال إلى الأدوات > مدير SDK. في علامة التبويب الأنظمة الأساسية لحزمة تطوير البرامج (SDK)، ضَع علامة في المربّع إظهار تفاصيل الحزمة واختَر المراجعة 9 أو الإصدارات الأحدث من محاكي Android 11.

تعذُّر تشغيل "استوديو YouTube" بعد الترقية

إذا لم يبدأ "استوديو YouTube" بعد الترقية، قد ترجع المشكلة إلى إعداد "استوديو Android" غير صالح تم استيراده من إصدار سابق من "استوديو Android" أو بسبب مكوّن إضافي غير متوافق. كحل بديل، جرِّب حذف الدليل أدناه (أو إعادة تسميته) أدناه استنادًا إلى إصدار "استوديو Android" ونظام التشغيل، ثم ابدأ في تشغيل "استوديو Android" من جديد. سيؤدي هذا الإجراء إلى إعادة ضبط "استوديو Android" على الوضع التلقائي مع إزالة جميع المكوّنات الإضافية التابعة لجهات خارجية.

في الإصدار 4.1 من "استوديو Android" والإصدارات الأحدث:

  • نظام التشغيل Windows: %APPDATA%\Google\AndroidStudio<version>
    مثال: C:\Users\your_user_name\AppData\Roaming\Google\AndroidStudio4.1

  • نظام التشغيل macOS: ~/Library/Application Support/Google/AndroidStudio<version>
    مثال: ~/Library/Application Support/Google/AndroidStudio4.1

  • نظام التشغيل Linux: ~/.config/Google/AndroidStudio<version> و~/.local/share/Google/AndroidStudio<version>
    مثال: ~/.config/Google/AndroidStudio4.1 و~/.local/share/Google/AndroidStudio4.1

في الإصدار Android Studio 4.0 والإصدارات الأقدم:

  • نظام التشغيل Windows: %HOMEPATH%\.AndroidStudio<version>\config
    مثال: C:\Users\your_user_name\.AndroidStudio3.6\config

  • نظام التشغيل macOS: ~/Library/Preferences/AndroidStudio<version>
    مثال: ~/Library/Preferences/AndroidStudio3.6

  • نظام التشغيل Linux: ~/.AndroidStudio<version>/config
    مثال: ~/.AndroidStudio3.6/config

يُرجى العِلم أنّ دليل الإعداد لإصدارات Canary والإصدارات التجريبية من "استوديو Android" هو PreviewX.Y بدلاً من X.Y لـ <version>. على سبيل المثال، تستخدم إصدارات Android Studio 4.1 Canary AndroidStudioPreview4.1 بدلاً من دليل AndroidStudio4.1 المُستخدم للإصدار المرشح للإصدارات والإصدارات الثابتة.

مشكلة التجميع في مشروعات Kotlin متعددة المنصات

قد تظهر أخطاء التحويل في رمز MPP في Kotlin بسبب عدم توفّر رموز. من المفترض أن تؤدي ترقية مكوّن Kotlin الإضافي إلى الإصدار 1.4 إلى حلّ هذه المشكلة.

تعارضات التعيين الرئيسية في نظام التشغيل Linux

في نظام التشغيل Linux، تتعارض بعض اختصارات لوحة المفاتيح مع اختصارات لوحة المفاتيح الافتراضية في Linux واختصارات إدارة النوافذ الشائعة، مثل KDE وGNOME. قد لا تعمل اختصارات لوحة المفاتيح المتضاربة هذه على النحو المتوقّع في "استوديو Android".

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

نص صغير لواجهة المستخدم على نظام التشغيل ChromeOS

على نظام التشغيل ChromeOS، قد يظهر النص بحجم أصغر بكثير من الإصدارات السابقة. لحل هذه المشكلة، قم بما يلي:

  1. افتح نافذة الإعدادات بالنقر على ملف > الإعدادات.
  2. انتقِل إلى المظهر والسلوك > المظهر.
  3. انقر على استخدام خط مخصّص.
  4. زيادة حجم الخط
  5. في نافذة الإعدادات، انتقِل إلى المحرِّر > الخط.
  6. زيادة حجم الخط
  7. انقر على موافق.

تعديل الرموز

يوضّح هذا القسم المشاكل المعروفة المتعلّقة بأداة تعديل الرموز.

تجميد إدخال لوحة المفاتيح - مشكلات "iBus" على نظام التشغيل Linux

هناك بعض التفاعلات المعروفة بين البرنامج الخفي iBus على نظام التشغيل Linux وAndroid Studio. في بعض السيناريوهات، يتوقف بيئة التطوير المتكاملة (IDE) عن الاستجابة لإدخالات لوحة المفاتيح أو يبدأ في إدخال أحرف عشوائية. يظهر هذا الخطأ بسبب عدم مزامنة بعض البيانات بين iBus وXLib + AWT، وتم إبلاغ JetBrains وiBus مسبقًا قبل بثها. هناك ثلاثة حلول بديلة حاليًا لهذه المشكلة:

  • الحل الأول: فرض تشغيل iBus في الوضع المتزامن. قبل بدء Android استوديو، عليك تشغيل ما يلي في سطر الأوامر:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • الحل الثاني: إيقاف إدخال iBus في "استوديو Android". لإيقاف إدخال iBus لاستوديو Android فقط، يمكنك تشغيل الخطوات التالية في سطر الأوامر:
    $ XMODIFIERS= ./bin/studio.sh
    يؤدي هذا الحل البديل إلى إيقاف أساليب الإدخال في "استوديو Android" فقط، وليس أي تطبيقات أخرى قد تكون قيد التشغيل. تجدُر الإشارة إلى أنّه في حال إعادة تشغيل البرنامج الخفي أثناء تشغيل "استوديو Android" (على سبيل المثال، من خلال تشغيل ibus-daemon -rd)، ستوقِف أساليب الإدخال بشكلٍ فعّال لجميع التطبيقات الأخرى، وقد تعطّل أيضًا JavaScript في "استوديو Android" مع حدوث خطأ في التقسيم.
  • الحل 3: التحقّق جيدًا من روابط الاختصارات للتأكُّد من عدم ضبط اختصار الإدخال التالي على Control+Space، لأنّ هذا هو أيضًا اختصار إكمال الرمز في "استوديو Android". كما أن Ubuntu 14.04 (Trusty) يجعل Super+Space الاختصار الافتراضي، ولكن الإعدادات من الإصدارات السابقة ربما لا تزال موجودة. للتحقّق من روابط الاختصارات، شغِّل ibus-setup في سطر الأوامر لفتح نافذة "الإعدادات المفضّلة" مع IBus. ضِمن اختصارات لوحة المفاتيح، تأكَّد من أسلوب الإدخال التالي. إذا تم ضبطه على Control+Space، يمكنك تغييره إلى Super+Space أو على اختصار آخر من اختيارك.

إعدادات المشروع

يصف هذا القسم المشاكل المعروفة المتعلقة بإعداد المشروع ومزامنة Gradle.

تعذّرت مزامنة Gradle: الممر معطل

المشكلة هي أن البرنامج الخفي لـ Gradle يحاول استخدام IPv4 بدلاً من IPv6.

  • الحل 1: على نظام التشغيل Linux، أدخِل ما يلي في ~/.profile أو ~/.bash_profile:
    export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true"
  • الحل 2: في ملف vmoptions في "استوديو Android"، تغيير السطر -Djava.net.preferIPv4Addresses=true إلى -Djava.net.preferIPv6Addresses=true لمزيد من المعلومات، يمكنك الاطّلاع على دليل مستخدم Networking IPv6.

أخطاء "لم تتم مصادقة الزملاء" من مزامنة Gradle أو "مدير SDK"

السبب الأساسي لهذه الأخطاء هو عدم توفّر شهادة في $JAVA_HOME/jre/lib/certificates/cacerts. لحل هذه الأخطاء، يمكنك المتابعة كما يلي:

  • إذا كنت تستخدم خادمًا وكيلاً، حاوِل الاتصال بالإنترنت مباشرةً. إذا كان الاتصال المباشر فعالاً، قد تحتاج إلى استخدام keytool لإضافة شهادة الخادم الوكيل إلى ملف الشهادات، لإجراء الاتصال عبر الخادم الوكيل.
  • إعادة تثبيت JDK متوافق وغير معدل. هناك مشكلة معروفة تؤثر في مستخدمي نظام التشغيل Ubuntu، ما يؤدي إلى عدم إدراج /etc/ssl/certs/java/cacerts. لحلّ هذه المشكلة، نفِّذ ما يلي في سطر الأوامر:
    sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

النشر

يصف هذا القسم المشاكل المعروفة المتعلقة بنشر تطبيقك على جهاز متصل.

[نظام التشغيل Mac فقط] لا يتم تطبيق التحديثات الإضافية بسبب مشكلة في مشاهدة ملفات Gradle ضمن المشاريع المحفوظة ضمن /System/Volumes/Data.

تؤثّر مشكلة Gradle 18149 في الإصدار 7.0 من "المكوّن الإضافي Gradle المتوافق مع Android" والإصدارات الأحدث، لأنّها تتطلّب الإصدار 7.0 من Gradle أو الإصدارات الأحدث. بدءًا من إصدار Gradle 7.0، يتم تفعيل ميزة مشاهدة الملفات تلقائيًا. إذا كنت تعمل على نظام التشغيل Mac وكان مشروعك محفوظًا ضمن /System/Volumes/Data، لن تتتبّع مشاهدة ملف Gradle المتوافق مع التغييرات في الملف بشكل صحيح. سيتسبب ذلك في عدم ظهور أي تغييرات على الملفات في نظام الإصدار، وبالتالي لن يتم تحديث حِزم APK. وعندئذٍ لن يتخذ رمز النشر التزايدي أي إجراء لأنّ حالة حزمة APK المحلية هي نفسها الحالة على الجهاز.

لحلّ هذه المشكلة، يجب نقل دليل مشروعك إلى دليل المستخدمين، أي ضمن /Users/username. بعد ذلك، سيتم إعلام نظام الإنشاء بشكل صحيح بالتغييرات التي تطرأ على الملفات، من خلال مشاهدة ملفات Gradle، وسيتم تطبيق التغييرات التزايدية بنجاح.

Android Emulator HAXM على macOS High Sierra

يتطلّب محاكي Android على نظام التشغيل macOS High Sierra (10.13) توفُّر نظام HAXM 6.2.1 أو الإصدارات الأحدث للحصول على أفضل توافق وثبات مع نظام التشغيل macOS. ومع ذلك، يتضمّن الإصدار 10.13 من نظام التشغيل macOS عملية أكثر تعقيدًا لتثبيت إضافات النواة مثل HAXM. ستحتاج إلى السماح يدويًا بتثبيت إضافة النواة kernel نفسها، على النحو التالي:

  1. حاوِل أولاً تثبيت أحدث إصدار من HAXM من SDK Manager.
  2. في نظام التشغيل MacOS، انتقِل إلى إعدادات النظام المفضّلة > الأمان والخصوصية.
  3. إذا رأيت تنبيهًا مفاده أنه تم حظر تحميل برامج النظام من مطوّر البرامج "Intel Corporation Apps"، انقر على السماح:

لمزيد من المعلومات والحلول البديلة، يُرجى الاطّلاع على صفحة ويب Apple هذه و المشكلة 62395878.

تطبيق التغييرات

يوضِّح هذا القسم المشاكل المعروفة المتعلقة بتطبيق التغييرات.

لم يتم تطبيق اسم التطبيق الجديد.

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

مشكلة في "وقت تشغيل Android" تؤدي إلى ظهور الخطأ

إذا كنت تستخدم جهازًا يعمل بالإصدار 8.0 أو 8.1 من نظام التشغيل Android، قد تظهر لك رسائل "VERIFICATION_ERROR" عند محاولة تطبيق أنواع معيّنة من التغييرات (خاصةً إذا كنت تستخدم لغة Kotlin). سبب هذه الرسالة هو مشكلة في "وقت تشغيل Android" التي تم إصلاحها في الإصدار 9.0 من نظام Android والإصدارات الأحدث. على الرغم من أنّ المشكلة تؤدي إلى تعذُّر تطبيق التغييرات، لا يزال بإمكانك تشغيل رمز التنفيذ تطبيقك مرة أخرى للاطّلاع على التغييرات التي أجريتها. ومع ذلك، ننصحك بترقية الجهاز إلى الإصدار Android 9.0 أو الإصدارات الأحدث.

تصحيح الأخطاء والاختبار

يوضِّح هذا القسم المشاكل المعروفة المتعلقة بتصحيح أخطاء تطبيقك واختباره.

تختبر وحدة JUnit الموارد المفقودة في مسار الفئة عند تشغيلها من "استوديو Android".

إذا كان لديك مجلدات موارد محددة في وحدات Java، فلن يتم العثور على هذه الموارد عند إجراء اختبارات من بيئة التطوير المتكاملة (IDE). سيعمل إجراء الاختبارات باستخدام Gradle من سطر الأوامر. سينجح أيضًا تنفيذ مهمة Gradle check من بيئة التطوير المتكاملة (IDE). راجع المشكلة 64887 للحصول على مزيد من التفاصيل.

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

  • الحل الأول: شغِّل مهمة Gradle check من بيئة التطوير المتكاملة بدلاً من إجراء اختبار وحدة.
  • الحل 2: تحديث النص البرمجي للإصدار لنسخ الموارد يدويًا إلى مجلد الإصدار. يمكنك الاطّلاع على التعليق رقم 13 للحصول على مزيد من المعلومات.

قد يؤدي إجراء اختبارات JUnit إلى تجميع الرمز مرتين.

عند إنشاء مشروع جديد، يمكن إنشاء نموذج تهيئة JUnit من خلال خطوتين "قبل الإطلاق": وهما الإنشاء والإنشاء عبر Gradle-aware. ثم يتم نشر هذه التكوينات في جميع تهيئات تشغيل JUnit التي تم إنشاؤها.

  • لحلّ المشكلة المتعلّقة بالمشروع الحالي، انقر على تشغيل > تعديل الإعدادات وغيِّر إعدادات JUnit التلقائية بحيث تتضمّن فقط خطوة Gradle-aware Make فقط.
  • لإصلاح المشكلة في جميع المشاريع المستقبلية، انقر على ملف > إغلاق المشروع. من المفترض أن تظهر شاشة الترحيب. بعد ذلك، انقر على ضبط > الإعدادات التلقائية للمشروع > تشغيل الإعدادات وغيِّر إعدادات JUnit لتضمين خطوة "إنشاء Gradle-aware" فقط.

بعض إعدادات إجراء الاختبار لا تعمل

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

  • ولا تعمل إعدادات تشغيل Gradle (التي تحتوي على شعار Gradle كرمز) .
  • لا تنطبق تهيئات تشغيل JUnit (التي تحتوي على رمز بدون رمز Android الأخضر) على اختبارات الأدوات، التي لا يمكن تشغيلها على جهاز JVM المحلي.
يتذكّر "استوديو Android" أيضًا إعدادات التشغيل التي تم إنشاؤها في سياق معين (على سبيل المثال، النقر بزر الماوس الأيمن على فئة أو طريقة محدّدة)، ولن يتم اقتراحه للتشغيل في إعدادات مختلفة في المستقبل. لإصلاح هذه المشكلة، انقر على تشغيل > تعديل عمليات الضبط وأزِل عمليات الضبط التي تم إنشاؤها بشكل غير صحيح.

إضافة نقاط توقف Java أثناء تصحيح أخطاء التعليمات البرمجية الأصلية

أثناء إيقاف تطبيقك مؤقتًا عند نقطة إيقاف في الترميز الأصلي، قد لا يتعرّف برنامجا تصحيح الأخطاء Auto وDual على الفور على نقاط توقف Java الجديدة التي ضبطتها. ولتجنُّب هذه المشكلة، أضِف نقاط توقف Java إما قبل بدء جلسة تصحيح الأخطاء أو أثناء إيقاف التطبيق مؤقتًا عند نقطة إيقاف Java. لمزيد من المعلومات، راجع المشكلة 229949.

الخروج من برنامج تصحيح الأخطاء الأصلي

أثناء استخدام برنامج تصحيح الأخطاء Auto أو Dual لتصحيح أخطاء Java والرموز الأصلية، إذا انتقلت إلى دالة أصلية من رمز Java الخاص بك (على سبيل المثال، يوقف برنامج تصحيح الأخطاء التنفيذ مؤقتًا في سطر في رمز Java الذي يستدعي دالة أصلية ثم تنقر على Step Into ) وتريد الرجوع إلى رمز Java والرمز الأصلي، وانقر على استئناف خطوة (خارج) your-module لمزيد من المعلومات، راجع المشكلة 224385.

تعليق برنامج تصحيح الأخطاء الأصلي أثناء تحميل المكتبات

أثناء استخدام برنامج تصحيح الأخطاء الأصلي لأول مرة بعد الترقية إلى Android Studio 4.2 أو إصدار أحدث، قد يتوقف برنامج تصحيح الأخطاء الأصلي عن الاستجابة أثناء تحميل المكتبات من جهاز Android. هذه المشكلة هي مشكلة ثابتة تستمر في الحدوث حتى إذا أوقفت برنامج تصحيح الأخطاء وأعدت تشغيله. لحل هذه المشكلة، يمكنك حذف ذاكرة التخزين المؤقت LLDB في $USER/.lldb/module-cache/.

تعطُّل برنامج تصحيح الأخطاء الأصلي وظهور رسالة الخطأ "انتهت عملية برنامج تصحيح الأخطاء برمز الخروج 127"

يحدث هذا الخطأ على الأنظمة الأساسية التي تعمل بنظام التشغيل Linux عند بدء برنامج تصحيح الأخطاء الأصلي. ويشير إلى أنّ إحدى المكتبات التي يتطلبها برنامج تصحيح الأخطاء الأصلي غير مثبّتة على النظام المحلي. قد يكون اسم المكتبة غير المتوفرة مطبوعًا بالفعل في ملف idea.log. إذا لم يكن الأمر كذلك، يمكنك استخدام وحدة طرفية للانتقال إلى دليل تثبيت "استوديو Android" وتنفيذ سطر الأوامر bin/lldb/bin/LLDBFrontend --version لمعرفة المكتبات الناقصة. عادةً ما تكون المكتبة المفقودة هي ncurses5، وذلك لأنّ بعض توزيعات Linux الحديثة تمت ترقيتها إلى ncurses6.

محلّلون

يصف هذا القسم المشكلات المعروفة مع المحللين.

محلّل الذاكرة الأصلي: لا يتوفّر تحليل البيانات أثناء بدء تشغيل التطبيق

لا يمكن حاليًا استخدام أداة "تحليل الذاكرة الأصلية" أثناء بدء تشغيل التطبيق. سيكون هذا الخيار متاحًا في إصدار قادم.

كحل بديل، يمكنك استخدام محلّل سطر أوامر مستقل في Perfetto لتسجيل الملفات الشخصية للشركات الناشئة.

أخطاء انتهاء المهلة في محلّل وحدة المعالجة المركزية (CPU)

قد تظهر لك أخطاء "تعذّر التسجيل لإيقاف التسجيل" في ملف تعريف وحدة المعالجة المركزية (CPU) في "استوديو Android" عند اختيار إعدادات نموذج طرق Java أو Trace Java Methods. غالبًا ما تكون هذه أخطاء متعلّقة بانتهاء المهلة، خصوصًا إذا ظهرت لك رسالة الخطأ التالية في ملف idea.log:

Wait for ART trace file timed out

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

إذا واجهت مشاكل متعلّقة بانتهاء المهلة مع المحلِّل، يُرجى الإبلاغ عن خطأ يتضمّن العلامة التجارية لجهازك(أجهزتك) وطرازها وأي إدخالات ذات صلة من idea.log وlogcat.

استثناء ADB عند تصحيح الأخطاء أو إنشاء ملفات تعريفية

عند استخدام أدوات النظام الأساسي 29.0.3، قد لا يعمل تصحيح الأخطاء الأصلي وملفات الملفات الشخصية في "استوديو Android" بشكل صحيح، وقد ترى إما "AdbCommandRejectException" أو "تعذّر الاتصال بالمنفذ" في ملف idea.log عند اختيار مساعدة > عرض السجل. تؤدي ترقية أدوات النظام الأساسي إلى 29.0.4 أو أعلى إلى إصلاح كلتا المشكلتين.

لترقية أدوات النظام الأساسي، قم بما يلي:

  1. افتح تطبيق SDK Manager من "استوديو Android" بالنقر على الأدوات > منصة SDK Manager أو انقر على SDK Manager في شريط الأدوات.
  2. انقر على مربّع الاختيار بجانب أدوات النظام الأساسي لحزمة تطوير البرامج (SDK) لنظام التشغيل Android حتى تظهر علامة اختيار. من المفترض أن يظهر رمز تنزيل في العمود الأيمن.
  3. انقر على تطبيق أو حسنًا.

يمنع المكون الإضافي عمل نافذة ناتج الإصدار

يؤدي استخدام المكوِّن الإضافي CMake Simplehighlighter (أداة تمييز بسيطة) إلى منع المحتوى من الظهور في نافذة إنشاء الإخراج. يتم تشغيل الإصدار وتظهر علامة التبويب "مخرجات الإصدار"، ولكن لا توجد إخراج (المشكلة رقم 204791544).

يمنع طلب التثبيت الإطلاق

قد يؤدي تثبيت إصدار أحدث من "استوديو Android" قبل إصدار قديم إلى منع تشغيل الإصدار القديم. على سبيل المثال، إذا ثبّت أولاً إصدار Canary من استوديو Android، ثم حاولت تثبيت الإصدار الثابت وتشغيله، فقد لا يتم إطلاق الإصدار الثابت. وفي مثل هذه الحالات، يجب عليك محو ذاكرة التخزين المؤقت لإطلاق الإصدار الثابت (القديم). على نظام التشغيل macOS، لمحو ذاكرة التخزين المؤقت، احذف دليل Library/ApplicationSupport/Google/AndroidStudioversion_number. على نظام التشغيل Windows، لمحو ذاكرة التخزين المؤقت، استخدِم برنامج Disk Cleanup (تنظيف القرص).

لا يتوافق تطبيق Espresso Test Recorder مع Compose.

لا يعمل Espresso Test Recorder مع المشاريع التي تتضمن Compose. لإنشاء اختبارات واجهة المستخدم للمشاريع التي تتضمّن Compose، يمكنك الاطّلاع على اختبار تنسيق Compose.

يتعارض اختصار Logcat مع تنسيقات لوحة المفاتيح المكتوبة بلغة غير الإنجليزية.

إذا كنت تستخدم تنسيق لوحة مفاتيح بلغة غير الإنجليزية، قد يتعارض اختصار لوحة مفاتيح Logcat التلقائي مع التنسيق ويمنعك من كتابة أحرف معيّنة عند تعديل النص في "استوديو Android". لحل هذه المشكلة، احذف خريطة مفاتيح Logcat المتعارضة أو أعِد تعيينها. لتعديل خرائط مفاتيح Logcat في "استوديو Android"، انتقِل إلى استوديو Android > الإعدادات > خريطة المفاتيح وابحث عن Logcat في قائمة خرائط المفاتيح. ولمزيد من المعلومات، يُرجى الاطّلاع على المشكلة رقم 263475910.

سيتم حلّ هذه المشكلة من خلال إزالة اختصار Logcat في Android Studio Electric Eel Patch 1.

المشاكل المعروفة في "المكوّن الإضافي لنظام Gradle المتوافق مع Android"

يوضّح هذا القسم المشاكل المعروفة التي توجد في أحدث إصدار ثابت من المكوّن الإضافي لنظام Gradle المتوافق مع Android.

لا يتم التحقّق من ليس كل تبعيات مكتبة الميزات الديناميكية.

عند تشغيل Lint مع checkDependencies = true من وحدة تطبيق، لا يتم التحقق من تبعيات مكتبة الميزات الديناميكية ما لم تكن أيضًا تبعيات للتطبيق (المشكلة رقم 191977888). كحل بديل، يمكن تشغيل مهمة Lint على هذه المكتبات.

توقيع ملف يحمل حروف الرجوع إلى أول السطر

لا يتوافق توقيع JAR (المخطط v1) مع أسماء الملفات التي تحتوي على أحرف الرجوع (المشكلة رقم 63885809).

قد لا ينجح تعديل نتائج الصيغ في وقت الإصدار.

تم إيقاف استخدام Variable API لمعالجة مخرجات الصيغ مع المكوّن الإضافي الجديد. ستظلّ تصلح لتنفيذ مهام بسيطة، مثل تغيير اسم APK أثناء وقت الإصدار، كما هو موضّح أدناه:

// If you use each() to iterate through the variant objects,
// you need to start using all(). That's because each() iterates
// through only the objects that already exist during configuration time—
// but those object don't exist at configuration time with the new model.
// However, all() adapts to the new model by picking up object as they are
// added during execution.
android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${variant.name}-${variant.versionName}.apk"
    }
}

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

لم يَعُد بيان مخرجات البيانات متوفرًا.

لم تعُد الطريقة processManifest.manifestOutputFile() متاحة، وسيظهر الخطأ التالي عند طلبها:

A problem occurred configuring project ':myapp'.
   Could not get unknown property 'manifestOutputFile' for task
   ':myapp:processDebugManifest' of type
   com.android.build.gradle.tasks.ProcessManifest.

بدلاً من استدعاء manifestOutputFile() للحصول على ملف البيان لكل متغير، يمكنك استدعاء processManifest.manifestOutputDirectory() لعرض مسار الدليل الذي يحتوي على جميع البيانات التي تم إنشاؤها. يمكنك بعد ذلك تحديد موقع البيان وتطبيق منطقك عليه. يعمل النموذج أدناه ديناميكيًا على تغيير رمز الإصدار في البيان:

android.applicationVariants.all { variant ->
    variant.outputs.all { output ->
        output.processManifest.doLast {
            // Stores the path to the maifest.
            String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml"
            // Stores the contents of the manifest.
            def manifestContent = file(manifestPath).getText()
            // Changes the version code in the stored text.
            manifestContent = manifestContent.replace('android:versionCode="1"',
                    String.format('android:versionCode="%s"', generatedCode))
            // Overwrites the manifest with the new text.
            file(manifestPath).write(manifestContent)
        }
    }
}

مشاكل متعلقة بدعم AGP 7.3.0 AIDL وKotlin 1.7.x

يؤدي استخدام الإصدار 7.3.0 من AGP مع KAPT في Kotlin 1.7.x إلى إزالة مجموعات مصادر AIDL لمتغيرات إصدار محدّدة. لا يزال بإمكانك استخدام مجموعات مصادر AIDL الأخرى، بما في ذلك main/، وأنواع التصميم ونكهات المنتجات ومجموعات نكهات المنتجات. إذا كنت بحاجة إلى استخدام مجموعات مصادر AIDL الخاصة بالمتغيرات، يمكنك مواصلة استخدام Kotlin 1.6.21.

المشاكل المعروفة التي تم حلّها

يوضِّح هذا القسم المشاكل المعروفة التي تم إصلاحها في إصدار حديث. إذا كنت تواجه أيًا من هذه المشاكل، يجب تحديث Android استوديو إلى أحدث إصدار ثابت أو إصدار تجريبي.

إصلاح الأخطاء في "استوديو Android" الإصدار 2021.1.1

  • إخراج الوبر غير موجود: ما مِن إخراج نص الوبر مطبوع على stdout عندما تكون مهمة أداة الوبر UP-TO-DATE (المشكلة رقم 191897708). ثابت في AGP 7.1.0-alpha05.
  • مشاكل اختبار الوحدة لمشروع تطبيق يستخدم مكوّن Hilt الإضافي: يحتوي مسار فئة اختبار الوحدات على فئات التطبيقات التي لا يتم قياسها، ما يعني أنّ Hilt لا يحدِّد فئات التطبيق لمعالجة إضافة التبعية عند إجراء اختبارات الوحدات (المشكلة رقم 213534628). تم إصلاحه في AGP 7.1.1.

تم إصلاحه في "استوديو Android" الإصدار 2020.3.1

  • استثناءات Lint في مشاريع Kotlin: قد تواجه مشاريع Kotlin التي يتم ضبطها checkDependencies = true استثناءات أو أخطاء في المؤشر الفارغ (المشكلة رقم 158777858).

إصلاح المشكلة في "استوديو Android" الإصدار 4.2

  • توقُّف IDE على macOS Big Sur: قد يتوقف Android Studio 4.1 عن العمل عند فتح مربّع حوار.

إصلاح الأخطاء في الإصدار 4.1 من "استوديو Android"

  • إعادة التشغيل لتطبيق إعدادات الذاكرة من الإصدار السابق من بيئة التطوير المتكاملة (IDE): بعد تحديث "استوديو Android"، عليك إعادة تشغيل "استوديو Android" لتطبيق أي إعدادات للذاكرة تم نقلها من إصدار سابق من بيئة التطوير المتكاملة (IDE).
  • لم يعُد يتم إنشاء فئة ملف البيان التي تتضمّن سلاسل أذونات مخصّصة تلقائيًا: إذا كنت تريد إنشاء الفئة، اضبط السمة android.generateManifestClass = true.

إصلاح المشكلة في "استوديو Android" 3.6

  • خطأ في تثبيت APK على LineageOS: قد يتعذّر نشر تطبيقك على الأجهزة التي تشغّل إصدارات معيّنة من LineageOS أو CyanogenMod وقد ينتج عنه استثناء INSTALL_PARSE_FAILED_NOT_APK.

    في الإصدار التجريبي 1 من استوديو Android 3.6 والإصدارات الأحدث، يتعامل IDE مع هذا الاستثناء من خلال إجراء تثبيت كامل للتطبيق عند نشر التطبيق على أجهزة LineageOS أو CyanogenMod، ما قد ينتج عنه زيادة مدة النشر.

إصلاح المشكلة في الإصدار 3.5.2 من "استوديو Android"

  • نمط رمز XML معطّل: عند تعديل رمز XML، طبّق بيئة التطوير المتكاملة نمط رمز غير صحيح عند اختيار الرمز > إعادة تنسيق الرمز من شريط القوائم.

إصلاح المشكلة في الإصدار 3.3.1 من "استوديو Android"

  • أخطاء نفاد الذاكرة عند فحص المشاريع المستندة إلى C++: عندما تُجري Gradle فحصًا لمشروع يحتوي على رمز C++ في أكثر من موقع على محرك الأقراص نفسه، سيتضمن الفحص جميع الأدلة أسفل الدليل المشترك الأول. قد يؤدي فحص عدد كبير من الأدلة والملفات إلى نفاد الذاكرة.

    لمزيد من المعلومات حول هذه المشكلة، يُرجى الاطّلاع على الخطأ المرتبط بالمشكلة.