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

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

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

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

يصف هذا القسم المشاكل المعروفة في "استوديو Android".

الإصدار 3 من Android Studio Panda غير متوافق مع الإصدار 1.2.0 من المكوّن الإضافي IntelliJ Develocity

عند استخدام الإصدار 1.2.0 من المكوّن الإضافي Develocity IDE، بدءًا من الإصدار 1 من استوديو Android Panda 3 Canary، يتعذّر تنفيذ إجراء التشغيل ويظهر الخطأ التالي (المشكلة رقم 492439205):

Found interface com.android.tools.idea.gradle.project.build.invoker.GradleBuildInvoker$Request, but class was expected

يعمل مطوّرو Develocity على إصلاح المشكلة في الإصدار الجديد.

الحلّ البديل: يؤدي إيقاف المكوّن الإضافي Develocity IDE الإصدار 1.2.0 إلى حلّ المشكلة إلى أن يتم إصلاح عدم التوافق هذا في إصدار جديد من المكوّن الإضافي.

‫Kotlin 2.0: لا يمكن حلّ تعبيرات Lambda في "أداة فحص التنسيق"

عند استخدام Kotlin 2.0، لا يمكن حلّ تعبيرات lambda، ولا يمكن لـ "أداة فحص التنسيق" الانتقال إلى الرمز المصدر لتعبير lambda كالمعتاد.

الحل: يمكنك إضافة خيار برنامج التجميع أدناه كحل بديل إلى أن يتم حلّ هذه المشكلة:

kotlin {
  compilerOptions {
    freeCompilerArgs.add("-Xlambdas=class")
  }
}

يؤدي تشغيل الإعدادات بدون "قبل الإطلاق" (Before launch) في Gradle-aware Make إلى حدوث خطأ في النشر

حدثت مشكلة في الإصدار 9 من تحديث Ladybug في "استوديو Android"‏ (Android Studio Ladybug Feature Drop Canary 9) أدّت إلى إزالة معلومات إعدادات التشغيل من المشاريع التي تم فتحها باستخدام هذا الإصدار. إذا فتحت مشروعك باستخدام هذا الإصدار في وقت ما، وأدى تشغيل تطبيقك إلى ظهور الخطأ "جارٍ تحميل عناصر الإصدار"، تأكَّد من أنّ إعدادات التشغيل النشطة تتضمّن خطوة "إنشاء Gradle-aware" في قسم "قبل الإطلاق". للتحقّق من ذلك، انقر على إعدادات التشغيل/تصحيح الأخطاء > تعديل الإعدادات، ثم انقر على إعدادات التشغيل النشطة وتأكَّد من وجود خطوة "إنشاء Gradle-aware" في قسم "قبل التشغيل". للأسف، لا يمكن لـ استوديو Android حلّ هذه المشكلة تلقائيًا لأنّ بعض إعدادات التشغيل قد تم ضبطها عمدًا بدون خطوة "Gradle-aware Make".

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

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

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

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

يتعذّر عزل طريقة عرض باستخدام "أداة فحص التنسيق"

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

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

إذا لاحظت أنّه لا يمكن فحص بعض عُقد 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" الآن على الإصدار 11 من حزمة تطوير Java‏ (JDK). يؤدي هذا التحديث إلى تغيير في السلوك الأساسي المتعلّق بمفاتيح التوقيع.

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

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

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

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

يحاول Studio استيراد ملفات ‎.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

إذا لم يبدأ Studio بعد تجربة هذا الحل البديل، يُرجى الاطّلاع على عدم بدء Studio بعد الترقية أدناه.

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

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

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

لحلّ هذه المشكلة، عليك ترقية محاكي Android 11 إلى الإصدار 9 أو إصدار أحدث من خلال الانتقال إلى الأدوات > SDK Manager. في علامة التبويب SDK Platforms، ضَع علامة في المربّع Show Package Details واختَر الإصدار 9 أو إصدارًا أحدث من محاكي Android 11.

لا يبدأ تشغيل Studio بعد الترقية

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

بالنسبة إلى الإصدار 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 وBeta من &quot;استوديو Android&quot; هو PreviewX.Y بدلاً من X.Y لإصدار <version>. على سبيل المثال، تستخدم إصدارات Canary من &quot;استوديو Android&quot;‏ 4.1 الدليل AndroidStudioPreview4.1 بدلاً من الدليل AndroidStudio4.1 الذي يُستخدم للإصدارات المحتملة والإصدارات الثابتة.

مشكلة في التجميع في مشاريع Kotlin Multiplatform

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

تعارضات في تحديد المفاتيح على نظام التشغيل Linux

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

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

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

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

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

تعديل الرموز

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

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

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

  • الحلّ الأول: فرض iBus في الوضع المتزامن. قبل بدء تشغيل Android Studio، شغِّل ما يلي في سطر الأوامر:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • الحلّ البديل 2: أوقِف إدخال iBus في "استوديو Android". لإيقاف إدخال iBus في استوديو Android فقط، شغِّل الأمر التالي في سطر الأوامر:
    $ XMODIFIERS= ./bin/studio
    يؤدي هذا الحلّ البديل إلى إيقاف طرق الإدخال في استوديو Android فقط، وليس في أي تطبيقات أخرى قد تكون قيد التشغيل. يُرجى العِلم أنّه في حال إعادة تشغيل البرنامج الخفي أثناء تشغيل "استوديو Android" (على سبيل المثال، من خلال تشغيل ibus-daemon -rd)، يتم إيقاف طرق الإدخال لجميع التطبيقات الأخرى بشكل فعّال، وقد يؤدي ذلك أيضًا إلى تعطُّل جهاز Java الافتراضي في "استوديو 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 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 OS وتم حفظ مشروعك ضمن /System/Volumes/Data، لن تتبع ميزة "مراقبة ملفات Gradle" تغييرات الملفات بشكل صحيح. سيؤدي ذلك إلى عدم رصد نظام الإنشاء لأي تغييرات في الملفات، وبالتالي لن يتم تحديث حِزم APK. وبالتالي، لن ينفّذ رمز النشر المتزايد أي إجراء لأنّ حالة حزمة APK المحلية هي نفسها على الجهاز.

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

‫Android Emulator HAXM على نظام التشغيل macOS High Sierra

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • لحلّ المشكلة في المشروع الحالي، انقر على تشغيل > تعديل الإعدادات وغيِّر إعدادات JUnit التلقائية لتشمل فقط خطوة "إنشاء" المتوافقة مع Gradle.
  • لحلّ المشكلة في جميع المشاريع المستقبلية، انقر على ملف > إغلاق المشروع. من المفترض أن تظهر لك شاشة الترحيب. بعد ذلك، انقر على Configure (ضبط) > Project Defaults (الإعدادات التلقائية للمشروع) > Run Configurations (ضبط التشغيل) وغيِّر ضبط JUnit ليتضمّن فقط خطوة "Make" (إنشاء) المتوافقة مع Gradle.

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

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

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

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

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

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

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

يتوقف مصحّح الأخطاء الأصلي عن العمل أثناء تحميل المكتبات

عند استخدام برنامج تصحيح الأخطاء الأصلي للمرة الأولى بعد الترقية إلى الإصدار 4.2 من &quot;استوديو Android&quot; أو إصدار أحدث، قد يتوقف برنامج تصحيح الأخطاء الأصلي عن الاستجابة أثناء تحميل المكتبات من جهاز 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

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

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

استثناء ADB عند تصحيح الأخطاء أو تحليل الأداء

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

لترقية "أدوات النظام الأساسي"، اتّبِع الخطوات التالية:

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

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

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

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

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

لا يعمل "مسجّل اختبار Espresso" مع Compose

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

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

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

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

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

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

لا يتم فحص جميع تبعيات مكتبة الميزات الديناميكية باستخدام أداة Lint

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

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

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

لم يعُد manifestOutputFile متاحًا

لم يعُد الإجراء 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)
        }
    }
}

مشاكل في توافق الإصدار 7.3.0 من "مكوّن Android الإضافي لبرنامج Gradle" مع لغة AIDL والإصدار 1.7.x من لغة Kotlin

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

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

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

تم إصلاح المشكلة في الإصدار Android Studio Rabbit 1 Canary 5

  • تنفيذ مزامنة Gradle المتوازية: في الإصدار 1 من استوديو Android Quail، لم تعُد السمة org.gradle.parallel=true في gradle.properties تتيح جلب النماذج المتوازية أثناء مزامنة Gradle عند استخدام الإصدار 9.4 من Gradle أو إصدار أحدث. وأدى ذلك إلى تراجع في وقت المزامنة للمشاريع الكبيرة. ستؤدي السمة org.gradle.tooling.parallel التي تم تقديمها حديثًا إلى تفعيل جلب النماذج الموازية، ولكن ليس لمنشئي نماذج IDEA. تمت إزالة هذا الحظر.

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

  • عدم توفّر مخرجات lint: لا تتم طباعة أي مخرجات نصية من lint في stdout عندما تكون مهمة lint هي UP-TO-DATE (المشكلة رقم 191897708). تم إصلاح هذه المشكلة في الإصدار 7.1.0-alpha05 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android".
  • مشاكل في اختبار وحدة مشروع تطبيق يستخدم المكوّن الإضافي Hilt: يحتوي مسار فئة اختبار الوحدة على فئات التطبيق غير المزوَّدة بأدوات، ما يعني أنّ Hilt لا يزوّد فئات التطبيق بأدوات للتعامل مع عملية إدخال الاعتمادية عند تنفيذ اختبارات الوحدة (المشكلة رقم 213534628). تم إصلاح هذه المشكلة في الإصدار 7.1.1 من "المكوّن الإضافي لنظام Gradle المتوافق مع Android".

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

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

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

  • تجمُّد IDE على نظام التشغيل macOS Big Sur: قد يتجمّد الإصدار 4.1 من "استوديو Android" عند فتح مربّع حوار.

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

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

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

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

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

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

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

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

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

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