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

تتبع هذه الصفحة المشاكل المعروفة في المكوّن الإضافي لنظام Gradle وKoala وAndroid Studio 8.5.0. إذا واجهت مشكلة غير مضمَّنة هنا، يُرجى الإبلاغ عن خطأ.

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

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

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

الاختلافات في سلوك Gemini في "استوديو Android" .aiexclude

عند إعداد ميزة مشاركة السياق في Gemini في "استوديو Android"، تعمل ملفات .aiexclude بالطريقة نفسها التي تعمل بها ملفات .gitignore، مع الاستثناءات التالية:

  • يحظر ملف .aiexclude فارغ جميع الملفات في الدليل الخاص به وجميع الأدلة الفرعية. يشبه ذلك الملف الذي يحتوي على "*" فقط.
  • لا يتيح .aiexclude ملف استخدام النفي (الأنماط التي تبدأ بـ !).

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

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

لا يمكن عزل طريقة عرض باستخدام Layout Inspector (أداة فحص التنسيق)

إنّ إمكانية عزل طريقة عرض باستخدام أداة فحص التنسيق المضمَّنة غير متاحة مؤقتًا. ونعمل على حل هذه المشكلة في إصدار مستقبلي.

لا يمكن فحص عُقد الإنشاء كلها باستخدام "أداة فحص التنسيق"

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

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

بدءًا من 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" الآن على إصدار JDK 11. يتسبب هذا التحديث في تغيير السلوك الأساسي في ما يتعلق بمفاتيح التوقيع.

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

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

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

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

يحاول تطبيق "استوديو YouTube" استيراد ملف .vmoptions السابق وتصحيحه للعمل مع أداة تجميع البيانات المهملة التي يستخدمها JDK 11. في حال تعذُّر هذه العملية، قد لا يبدأ بيئة التطوير المتكاملة (IDE) لبعض المستخدمين الذين يضبطون خيارات الجهاز الافتراضي (VM) المخصَّصة في ملف .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

قد تتعطّل التطبيقات التي تستخدم Database Inspector (أداة فحص قاعدة البيانات) عند تشغيلها على محاكي 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

بالنسبة إلى الإصدار 4.0 والإصدارات الأقدم من "استوديو Android"، اتّبِع الخطوات التالية:

  • نظام التشغيل 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. هناك ثلاثة حلول بديلة حالية لهذه المشكلة:

  • الحل 1: يمكنك فرض استخدام iBus في الوضع المتزامن. قبل بدء استخدام "استوديو Android"، يجب تشغيل ما يلي على سطر الأوامر:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • الحل الثاني: إيقاف إدخال iBus في "استوديو Android". لإيقاف إدخال iBus في "استوديو Android" فقط، عليك تشغيل ما يلي في سطر الأوامر:
    $ XMODIFIERS= ./bin/studio.sh
    يوقف هذا الحل البديل طرق الإدخال في "استوديو Android" فقط، وليس أي تطبيقات أخرى قيد التشغيل. تجدر الإشارة إلى أنّه في حال إعادة تشغيل البرنامج الخفي أثناء تشغيل "استوديو Android" (على سبيل المثال، عند تشغيل "ibus-daemon -rd")، سيتم إيقاف أساليب الإدخال بشكل فعّال لجميع التطبيقات الأخرى وقد يؤدي أيضًا إلى تعطُّل JVM في "استوديو 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"
  • الحل الثاني: في ملف vmoptions Android Studio، تغيير السطر -Djava.net.preferIPv4Addresses=true إلى -Djava.net.preferIPv6Addresses=true لمزيد من المعلومات، يُرجى الاطّلاع على دليل مستخدم IPv6 للشبكات.

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

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

  • إذا كنت تستخدم خادمًا وكيلاً، جرِّب الاتصال مباشرةً. إذا كان الاتصال المباشر يعمل، قد تحتاج إلى استخدام keytool لإضافة شهادة الخادم الوكيل إلى ملف CAcerts للاتصال عبر الخادم الوكيل.
  • أعِد تثبيت ملف 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. بدءًا من الإصدار 7.0 من Gradle، يتم تفعيل ميزة مشاهدة الملفات تلقائيًا. إذا كنت تعمل على نظام التشغيل 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، انتقِل إلى System Preferences (الإعدادات المفضَّلة للنظام) > Security and Privacy (الأمان والخصوصية).
  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 من بيئة التطوير المتكاملة (IDE) بدلاً من إجراء اختبار وحدة.
  • الحل الثاني: تحديث النص البرمجي للإصدار لنسخ الموارد يدويًا إلى مجلد الإصدار. راجِع التعليق رقم 13 للحصول على مزيد من المعلومات.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مسجِّلو اللقطات

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

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

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

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

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

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

Wait for ART trace file timed out

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

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

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

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

لترقية أدوات المنصة، عليك إجراء ما يلي:

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

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

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

طلب التثبيت يمنع التشغيل

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

مسجّل اختبار Espresso غير متوافق مع ميزة 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

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

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

لا يتيح توقيع JAR (المخطط v1) استخدام أسماء الملفات التي تحتوي على أحرف الرجوع إلى أول السطر (issue #63885809).

قد لا تنجح عملية تعديل نتائج خيارات المنتج أثناء وقت الإصدار.

يؤدي استخدام Variant 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، فلم تعُد تعمل. يرجع ذلك إلى أنّ المهام الخاصة بالصيغ لم تعُد يتم إنشاؤها أثناء مرحلة الإعداد. يؤدي هذا إلى عدم معرفة المكون الإضافي لجميع مخرجاته مقدمًا، ولكنه يعني أيضًا أوقات تهيئة أسرع.

لم يعد ملف البيان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

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

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

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

تم الإصلاح في "استوديو Android" 2021.1.1

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

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

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

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

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

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

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

تم الإصلاح في الإصدار 3.6 من "استوديو Android"

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

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

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

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

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

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

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