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

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

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

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

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

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

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

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

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

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

إذا لاحظت أنه ليست كل عُقد 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 وصححها للعمل مع أداة تجميع البيانات المهملة التي يستخدمها 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

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

تعطُّل التطبيقات التي تستخدم "أداة فحص قاعدة البيانات" على محاكي 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 وBeta من Android Studio هو 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 Studio.

يمكن العثور على مزيد من المعلومات حول هذه المشكلة (بما في ذلك الحلول البديلة). في أداة تتبُّع الأخطاء في 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 Studio. Ubuntu 14.04 (Trusty) على جعل Super+Space الاختصار التلقائي، لكن مع الإعدادات من السابق قد تظل الإصدارات موجودة. للتحقّق من روابط الاختصارات، شغِّل ibus-setup في سطر الأوامر لفتح نافذة "الإعدادات المفضّلة IBus". ضِمن اختصارات لوحة المفاتيح، ضَع علامة في المربّع أسلوب الإدخال التالي. إذا كان على Control+Space، أو التغيير إلى Super+Space، أو اختصار آخر اختيارك.

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

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

فشلت مزامنة Gradle: ممر غير صالح

تكمن المشكلة في أنّ برنامج Gradle الخفي يحاول استخدام IPv4 بدلاً من 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 من Gradle، يتم تفعيل ميزة مشاهدة الملفات تلقائيًا. إذا كنت تعمل على نظام التشغيل Mac وتم حفظ مشروعك ضمن /System/Volumes/Data، لن تتتبّع مشاهدة ملفات Gradle التغييرات على الملفات بشكل صحيح. سيؤدي ذلك إلى عدم ملاحظة نظام الإصدار لأي تغييرات في الملفات ولذلك لا يتم تحديث حِزم APK. سينفّذ رمز النشر التزايدي لا شيء لأنّ حالة حزمة APK المحلية هي نفسها على الجهاز.

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

استخدام ميزة HAXM في "محاكي Android" على نظام التشغيل macOS High Sierra

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

  1. أولاً، حاول تثبيت أحدث إصدار من HAXM من مدير حِزم تطوير البرامج (SDK):
  2. في نظام التشغيل MacOS، انتقل إلى System Preferences (الإعدادات المفضَّلة للنظام) > الأمان والخصوصية:
  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 من IDE بدلاً من إجراء اختبار وحدة.
  • الحل الثاني: تعديل النص البرمجي للإصدار لنسخ الموارد يدويًا إلى مجلد الإصدار. عرض التعليق رقم 13 لمزيد من المعلومات.

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

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

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

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

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

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

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

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

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

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

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

أثناء استخدام أداة تصحيح الأخطاء الأصلية لأول مرة بعد الترقية إلى الإصدار 4.2 من Android Studio والإصدارات الأحدث، قد تتوقّف أداة تصحيح الأخطاء الأصلية عن الاستجابة أثناء تحميل المكتبات من جهاز 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. Platform-أدوات لكي تظهر علامة اختيار. رمز التنزيل يجب أن يظهر في العمود الأيمن.
  3. انقر على تطبيق أو حسنًا.

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

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

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

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

مسجّل اختبار Espresso غير متوافق مع ميزة Compose

تشير رسالة الأشكال البيانية مسجّلة اختبار Espresso لا يعمل مع المشاريع التي تتضمّن 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 (مخطط الإصدار 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)
        }
    }
}

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

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

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

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

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

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

  • إعادة التشغيل لتطبيق إعدادات الذاكرة من الإصدار السابق من بيئة التطوير المتكاملة (IDE): بعد بعد تحديث "استوديو Android"، عليك إعادة تشغيل "استوديو Android" لتطبيق تم نقل إعدادات الذاكرة من إصدار سابق من بيئة التطوير المتكاملة (IDE).
  • لم يعُد يتم إنشاء فئة البيان التي تحتوي على سلاسل أذونات مخصّصة بشكلٍ تلقائي: إذا كنت تريد إنشاء الفئة، اضبط 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++ في أكثر من موقع على نفس محرك الأقراص، فحص يتضمن جميع الأدلة الموجودة أسفل الدليل المشترك الأول. جارٍ البحث قد يؤدي وجود عدد كبير من الأدلة والملفات إلى أخطاء نفاد الذاكرة.

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