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

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

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

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

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

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

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

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

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

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

بدءًا من 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 في وحدتك.

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

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

عند الانتقال إلى إنشاء > إنشاء حزمة موقَّعة / حِزمة 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. إذا لم تنجح هذه العملية، قد لا يبدأ بيئة التطوير المتكاملة لدى بعض المستخدمين الذين ضبطوا خيارات أجهزة افتراضية مخصّصة في ملف .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

في ما يخص الإصدار 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 المتعددة الأنظمة الأساسية

قد تظهر أخطاء في التحويل البرمجي في رمز Kotlin MPP بسبب عدم توفّر بعض الرموز. من المفترض أن تؤدي ترقية مكوّن 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)، قد توقِف أساليب الإدخال بشكلٍ فعّال لجميع التطبيقات الأخرى، وقد تعطّل أيضًا جهاز 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"
  • الحل 2: في ملف vmoptions في "استوديو Android"، تغيير السطر -Djava.net.preferIPv4Addresses=true إلى -Djava.net.preferIPv6Addresses=true لمزيد من المعلومات، يمكنك الاطّلاع على دليل مستخدم بروتوكول IPv6.

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

إنّ السبب الجذري لهذه الأخطاء هو عدم توفّر شهادة في $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 أو إصدارًا أحدث. بدءًا من الإصدار 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" قد تم حظرها من التحميل، انقر على Allow (سماح):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

بعض إعدادات تشغيل الاختبار لا تعمل

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

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

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

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

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

أثناء استخدام برنامج تصحيح الأخطاء Auto أو Dual لتصحيح أخطاء Java والرمز الأصلي، إذا دخلت إلى دالة أصلية من رمز Java الخاص بك (على سبيل المثال، يوقف برنامج تصحيح الأخطاء التنفيذ مؤقتًا في سطر في رمز Java يستدعي دالة أصلية وتنقر على Step Into ) وتريد العودة إلى علامة التبويب "استئناف البرنامج"، وبعد ذلك انقر على "استئناف" برنامج JavaScript (من علامة التبويب استئناف عملية Java your-module) (من علامة التبويب استئناف عملية 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 أو طُرق Java للتتبُّع. غالبًا ما تكون هذه أخطاء متعلّقة بانتهاء المهلة، خاصةً إذا ظهرت لك رسالة الخطأ التالية في ملف 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" من "استوديو Android" بالنقر على الأدوات > مدير SDK أو انقر على مدير SDK في شريط الأدوات.
  2. انقر على مربّع الاختيار بجانب أدوات النظام الأساسي لحزمة تطوير البرامج (SDK) لنظام التشغيل Android حتى تظهر علامة اختيار. من المفترض أن يظهر رمز التنزيل في العمود الأيمن.
  3. انقر على تطبيق أو حسنًا.

المكوّن الإضافي يمنع تشغيل نافذة مخرجات الإنشاء

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

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

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

إنّ تطبيق Espresso Test Recorder غير متوافق مع Compose.

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

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

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

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

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

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

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

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

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

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

لم يعد ملف البيانconversionoutFile متاحًا.

لم تعُد طريقة 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 Studio إلى أحدث إصدار ثابت أو إصدار معاينة.

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

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

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

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

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

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

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

  • إعادة التشغيل لتطبيق إعدادات الذاكرة التي تم نقلها من الإصدار السابق من بيئة تطوير البرامج (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، ما قد ينتج عنه إطالة مدة النشر.

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

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

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

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

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