בעיות מוכרות ב-Android Studio ובפלאגין Android Gradle

הדף הזה עוקב אחרי בעיות ידועות עם סטודיו ל-Android הפלאגין Koala ו-Android Gradle 8.5.0. אם נתקלתם בבעיה שעדיין לא נכללה כאן, אפשר לדווח על באג.

שדרוג לתצוגה מקדימה: כל גרסה של Android Studio ושל Android המטרה של הפלאגין Gradle היא לשפר את היציבות והביצועים, ולהוסיף תכונות חדשות. כדי ליהנות כבר עכשיו מהיתרונות של גרסאות עתידיות, צריך להוריד ולהתקין תצוגה מקדימה של Android Studio.

בעיות מוכרות ב-Android Studio

בקטע הזה מתוארות בעיות ידועות שקיימות בגרסה היציבה האחרונה של ב-Android Studio.

בחלון של האסיסטנט ב-Firebase מופיעה הודעת שגיאה

אם מופיעה הודעת שגיאה בחלון של Assistant ב-Firebase ('כלים' > Firebase בתפריט הראשי) , כדי לתקן את השגיאה, צריך לבטל את התוקף של המטמון ולהפעיל מחדש את Android Studio.

לא ניתן לבודד תצוגה באמצעות הכלי לבדיקת פריסה

היכולת לבודד תצוגה באמצעות בודק הפריסה לא זמין כרגע. אנחנו פועלים לפתרון הבעיה הזו בגרסה עתידית.

לא כל הצמתים של כתיבת הודעות ניתנים לבדיקה באמצעות 'בודק הפריסה'

אם לא ניתן לבדוק את כל הצמתים של כתיבה מחדש בזמן השימוש בכלי לבדיקת פריסות, סביר להניח שהסיבה לכך היא באג. שתוקנה בגרסה 1.5.0-alpha04 של הכתיבה. אם נתקלתם בבעיה את הבעיה הזו, הקפידו לשדרג לגרסה 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 במודול שלך.

שגיאה במהלך שימוש בסיסמאות שונות למפתחות ולמאגר המפתחות

החל מגרסה 4.2, מערכת Android Studio פועלת עכשיו ב-JDK 11. העדכון הזה גורמת לשינוי בהתנהגות בסיסית שקשורה למפתחות חתימה.

עוברים אל Build > Generate (יצירה) חבילה / APK חתומה ומנסים להגדיר חתימת אפליקציה עבור App Bundle או APK, הזנת סיסמאות שונות למפתח ולמאגר המפתחות עלולה לגרום השגיאה הבאה:

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

כדי לעקוף את הבעיה, הזן את אותה סיסמה גם למפתח וגם מאגר מפתחות.

מערכת Android Studio לא מתחילה אחרי ההתקנה של גרסה 4.2

מערכת Studio מנסה לייבא את הנתונים הקודמים .vmoptions וחבטו אותן כדי לעבוד עם אוסף האשפה המשמש JDK 11. אם התהליך נכשל, יכול להיות שסביבת הפיתוח המשולבת (IDE) לא תתחיל עבור משתמשים מסוימים להגדיר אפשרויות למכונות וירטואליות בהתאמה אישית בקובץ .vmoptions.

כדי לפתור את הבעיה הזו, מומלץ להוסיף תגובות לאפשרויות מותאמות אישית ב-.vmoptions (באמצעות התו '#'). קובץ .vmoptions יכול להיות במיקומים הבאים:

Windows

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

macOS

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

Linux

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

אם Studio עדיין לא מתחיל אחרי שניסיתם את הפתרון הזה, לצפייה בסרטון אפליקציית Studio לא מתחילה אחרי השדרוג שלמטה.

אפליקציות שמשתמשות ב'כלי לבדיקת מסדי נתונים' קורסות באמולטור Android 11

אפליקציות שמשתמשות ב'כלי לבדיקת מסד הנתונים' עלולות לקרוס במהלך ההפעלה ב-Android 11 אמולטור, עם שגיאה כמו הבאה שמופיעה ב-Logcat:

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

כדי לפתור את הבעיה, צריך לשדרג את האמולטור Android 11 לגרסה 9 ואילך עד ניווט אל כלים > SDK Manager. בכרטיסייה SDK Platforms, מסמנים התיבה הצגת פרטי החבילה ובוחרים גרסה 9 ואילך של האמולטור Android 11.

Studio לא מתחיל אחרי השדרוג

אם Studio לא מתחיל אחרי שדרוג, יכול להיות שהסיבה לכך היא בעיה לא חוקית ההגדרות האישיות של Android Studio יובאו מגרסה קודמת של Android Studio או פלאגין לא תואם. כפתרון זמני, נסו למחוק (או לשנות את שמו, עבור למטרות גיבוי) על הספרייה שלמטה, בהתאם לגרסת Android Studio. ומערכת ההפעלה, ולהתחיל שוב את Android Studio. הפעולה הזו תאפס את Android Studio למצב ברירת המחדל שלו, וכל יישומי הפלאגין של צד שלישי הוסרו.

ב-Android Studio 4.1 ואילך:

  • Windows: %APPDATA%\Google\AndroidStudio<version>
    דוגמה: C:\Users\your_user_name\AppData\Roaming\Google\AndroidStudio4.1

  • macOS: ~/Library/Application Support/Google/AndroidStudio<version>
    דוגמה: ~/Library/Application Support/Google/AndroidStudio4.1

  • Linux: ~/.config/Google/AndroidStudio<version> ו-~/.local/share/Google/AndroidStudio<version>
    דוגמה: ~/.config/Google/AndroidStudio4.1 ו-~/.local/share/Google/AndroidStudio4.1

ב-Android Studio 4.0 ובגרסאות קודמות:

  • Windows: %HOMEPATH%\.AndroidStudio<version>\config
    דוגמה: C:\Users\your_user_name\.AndroidStudio3.6\config

  • macOS: ~/Library/Preferences/AndroidStudio<version>
    דוגמה: ~/Library/Preferences/AndroidStudio3.6

  • Linux: ~/.AndroidStudio<version>/config
    דוגמה: ~/.AndroidStudio3.6/config

שימו לב שספריית ההגדרות של גרסאות Canary וגרסת בטא של Android תוכנית Studio היא PreviewX.Y במקום X.Y עבור <version>. לדוגמה, Android גרסאות build של Canary ב-Studio 4.1 משתמשות ב-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. בחלק מהמקרים בתרחישים מסוימים, סביבת הפיתוח המשולבת מפסיקה להגיב לקלט של המקלדת או מתחילה להזין בתווים אקראיים. הבאג הזה מופעל בגלל סנכרון חסר בין iBus ל-Xlib + AWT, וכבר דווח ב-upstream JetBrains ו-iBus. יש קיימים שלושה פתרונות אפשריים לבעיה:

  • פתרון 1: אילוץ iBus למצב סינכרוני. לפני שמפעילים את Android Studio, מריצים את הפקודה הבאה בשורת הפקודה:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • פתרון 2: השבתת קלט iBus ב-Android Studio. כדי להשבית את קלט iBus ב-Android Studio בלבד, הריצו את הפקודה הבאה בשורת הפקודה:
    $ XMODIFIERS= ./bin/studio.sh
    המעקף הזה משבית רק את שיטות הקלט ב-Android Studio, ולא אפליקציות אחרות שאתם מפעילים. שימו לב שאם תפעילו מחדש את דימון (daemon) בזמן ש-Android Studio פועל (לדוגמה, על ידי הרצת ibus-daemon -rd), אפשר להשבית ביעילות את שיטות הקלט עבור כל עלול גם לקרוס את ה-JVM של Android Studio עם טעות בפילוח.
  • פתרון 3: בדוק שוב את קישורי הקיצור כדי לוודא מקש הקיצור הבא של הקלט לא מוגדר כ-Control+מקש הרווח, כי גם קיצור הדרך להשלמת הקוד ב-Android Studio. Ubuntu 14.04 (Trusty) הופך את Super+מקש הרווח לקיצור הדרך שמוגדר כברירת מחדל, אבל ההגדרות מהקטע הקודם יכול להיות שהגרסאות עדיין קיימות. כדי לבדוק את קישורי הקיצור, הריצו את ibus-setup בשורת הפקודה כדי לפתוח את חלון ההעדפות של IBus. בקטע מקשי קיצור, מסמנים את האפשרות שיטת הקלט הבאה. אם הוא צריך להגדיר אותן כמו כ-Control+מקש הרווח, לשנות אותן ל-Super+מקש הרווח או לקיצור דרך אחר של הבחירה שלכם.

הגדרות אישיות של פרויקט

בקטע הזה מתוארות בעיות ידועות שקשורות להגדרות של פרויקט ול-Gradle לסנכרן

סנכרון Gradle נכשל: צינור עיבוד נתונים מנותק

הבעיה היא שהדימון של Gradle מנסה להשתמש ב-IPv4 במקום ב-IPv6.

  • פתרון 1: ב-Linux, יש להוסיף את הפקודה הבאה ל-~/.profile או ל- ~/.bash_profile:
    export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true"
  • פתרון 2: ב-vmoptions של Android Studio file, שינוי השורה -Djava.net.preferIPv4Addresses=true ל- -Djava.net.preferIPv6Addresses=true מידע נוסף זמין במאמר משתמש IPv6 ברשת מדריך.

'העמית לא אומת' שגיאות בסנכרון Gradle או ב-SDK Manager

הגורם הבסיסי לשגיאות האלה חסר אישור ב- $JAVA_HOME/jre/lib/certificates/cacerts. כדי לפתור את השגיאות האלה, צריך להמשיך ככה:

  • אם אתם מאחורי שרת Proxy, נסו להתחבר ישירות. אם המודעה הישירה פועל, ייתכן שכדי להתחבר דרך שרת ה-proxy ייתכן שיהיה צורך צריך להשתמש ב-keytool כדי להוסיף את האישור של שרת ה-proxy לקובץ ה-cacerts.
  • להתקין מחדש JDK נתמך שלא בוצעו בו שינויים. יש בעיה ידועה שמשפיעה על משתמשי Ubuntu, וכתוצאה מכך /etc/ssl/certs/java/cacerts. כדי לעקוף את הבעיה, מפעילים את בשורת הפקודה:
    sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

פריסה

בקטע הזה מתוארות בעיות ידועות הקשורות לפריסת האפליקציה לרשת מחוברת במכשיר.

[Mac OS בלבד] עדכונים מצטברים לא חלים בגלל בעיה בצפייה בקובצי Gradle בפרויקטים שנשמרו בקטע /System/Volumes/Data

בעיה Gradle מספר 18149 משפיעה יישומי הפלאגין ל-Android Gradle בגרסאות 7.0 ואילך כי נדרשת גרסה 7.0 ואילך של Gradle. החל מגרסה 7.0 של Gradle, הצפייה בקבצים מופעלת כברירת מחדל. אם אתם עובדים ב-Mac OS והפרויקט שלכם שמור ב- /System/Volumes/Data, האפשרות לצפות בקובץ Gradle לא תעקוב כמו שצריך אחרי שינויים בקבצים. פעולה זו תגרום למערכת ה-Build לא לראות שינויים בקבצים, לכן לא יעדכנו את חבילות ה-APK. לאחר מכן קוד הפריסה המצטבר יפעל שום דבר כי מצב ה-APK המקומי זהה למצב במכשיר.

כדי לפתור את הבעיה הזו, עליך להעביר את ספריית הפרויקט למשתמש שלך ספרייה, כלומר במסגרת /Users/username. בשלב זה, מערכת Build קבלת התראות מתאימות לגבי שינויים בקבצים באמצעות צפייה בקובץ Gradle וצפייה מצטברת השינויים יחולו בהצלחה.

אמולטור Android HAXM ב-macOS High Sierra

אמולטור Android מופעל ל-macOS High Sierra (10.13) נדרש HAXM מגרסה 6.2.1 ואילך תאימות ויציבות עם macOS. עם זאת, ב-macOS 10.13 יש שנדרשים כדי להתקין תוספי ליבה (kernel) כמו HAXM. צריך כדי לאפשר באופן ידני את ההתקנה של תוסף הליבה עצמו באופן הבא:

  1. תחילה, מנסים להתקין את הגרסה האחרונה של HAXM מנהל ה-SDK.
  2. ב-MacOS, עוברים אל System Preferences > (העדפות מערכת >) אבטחה ופרטיות.
  3. אם מופיעה התראה שתוכנת מערכת מהמפתח Intel Corporation אפליקציות" הטעינה נחסמה, צריך ללחוץ על Allow (אישור):

לקבלת מידע נוסף ודרכים לעקוף את הבעיה, אפשר לעיין במאמר דף האינטרנט הזה של Apple ו בעיה 62395878.

החלת השינויים

בקטע הזה מתוארות בעיות ידועות שקשורות להחלת השינויים שינויים.

השם החדש של האפליקציה לא הוחל

אם תשנו את שם האפליקציה ולאחר מכן תנסו להחיל את השינוי, יכול להיות שהשם המעודכן יהיה לא משתקפות. כדי לעקוף את הבעיה, לוחצים על הפעלה. סמל ההפעלה לפרוס מחדש את האפליקציה שלכם ולראות את השינויים.

בעיה בשגיאת 'זריקה בזמן הריצה של Android'

אם אתם משתמשים במכשיר עם Android מגרסה 8.0 או 8.1, יכול להיות שתיתקלו "verification_ERROR" כאשר מנסים להחיל סוגים מסוימים של שינויים. (במיוחד אם משתמשים ב-Kotlin). ההודעה הזו נגרמה בגלל בעיה זמן ריצה של Android שמותקן ב-Android 9.0 ואילך. למרות שהבעיה גורם ל'החלת השינויים' להיכשל, עדיין אפשר לבצע הפעלה סמל ההפעלה את האפליקציה שוב כדי לראות את השינויים. עם זאת, מומלץ לשדרג למכשיר Android מגרסה 9.0 ומעלה.

ניפוי באגים ובדיקה

בקטע הזה מתוארות בעיות ידועות שקשורות לניפוי באגים ולבדיקת האפליקציה.

JUnit בודק את המשאבים שחסרים ב-classpath כשמריצים אותה מ-Android Studio

אם יש תיקיות משאבים ספציפיות במודולים של Java, משאבים לא יימצאו כשמריצים בדיקות בסביבת הפיתוח המשולבת (IDE). מתבצעות בדיקות באמצעות Gradle משורת הפקודה, יפעל. ביצוע Gradle check מה-IDE תעבוד גם כן. לבעיה 64887 לקבלת פרטים נוספים פרטים.

הבעיה הזו נגרמת כי החל מ-IntelliJ 13, נדרש תיקייה אחת כנתיב הכיתה. ב-builder של IntelliJ מעתיקים את כל המשאבים. בתיקיית ה-build הזו, אבל Gradle לא מעתיקה את המשאבים.

  • פתרון 1: להריץ את המשימה Gradle check מסביבת הפיתוח המשולבת (IDE) במקום הרצת בדיקת יחידה.
  • פתרון 2: מעדכנים את סקריפט ה-build כדי להעתיק את המשאבים באופן ידני אל בתיקיית ה-build. צפייה תגובה מס' 13 אפשר לקבל מידע נוסף.

הרצת בדיקות של JUnit עשויה להדר את הקוד פעמיים

כשיוצרים פרויקט חדש, יכול להיות שהמערכת תיצור את תצורת JUnit של התבנית עם שתי פונקציות "לפני ההשקה" שלבים: 'לעשות' ו'עם מודעות לגריל'. ההגדרות האישיות האלה אחר כך יופץ לכל ההגדרות של הרצת JUnit.

  • כדי לפתור את הבעיה בפרויקט הנוכחי, לוחצים על Run > ערוך הגדרות אישיות ומשנים את הגדרת ברירת המחדל של JUnit כוללים את שלב ה-Gradle.
  • כדי לפתור את הבעיה בכל הפרויקטים העתידיים, לוחצים על קובץ > סגור פרויקט. מסך הפתיחה אמור להופיע. לאחר מכן לוחצים על הגדרה > ברירות המחדל של הפרויקט > הרצת הגדרות אישיות ושינוי ה-JUnit כך שתכלול רק את השלב של Gradle-Make.

חלק מההגדרות של הרצת הבדיקה לא פועלות

לא כל ההגדרות שפועלות זמינים כשלוחצים לחיצה ימנית על שיטת בדיקה חוקית. באופן ספציפי, ההגדרות הבאות לא תקינות:

  • מערכי הגדרות של Gradle (שבהם הסמל של Gradle) לא בעבודה.
  • הגדרות הרצה של JUnit (כולל סמל ללא ה-Android הירוק) לא חלים על בדיקות אינסטרומנטציה, שלא ניתן להריץ ב-JVM המקומי.
מערכת Android Studio זוכרת גם את תצורת ההרצה שנוצרה ההקשר (לדוגמה, לחיצה ימנית על כיתה או שיטה מסוימת), להציע לפעול בהגדרה אחרת בעתיד. כדי לפתור את הבעיה, אפשר ללחוץ על הפעלה > עריכת ההגדרות האישיות והסרת ההגדרות שנוצרו בצורה שגויה הגדרות אישיות.

הוספת נקודות עצירה (breakpoint) של Java בזמן ניפוי באגים בקוד נייטיב

בזמן שהאפליקציה מושהית בנקודת עצירה בגרסה המותאמת יכול להיות שכלי ניפוי הבאגים Auto ו-Dual לא יזהו באופן מיידי נקודות העצירה החדשות ב-Java שהגדרתם. כדי למנוע את הבעיה, צריך להוסיף נקודות עצירה (breakpoint) של Java לפני התחלה של סשן ניפוי באגים או בזמן שהאפליקציה מושהית ב-Java נקודת עצירה (breakpoint). מידע נוסף זמין במאמר בעיה 229949.

יוצאים מהכלי המקורי לניפוי באגים

כשמשתמשים בכלי לניפוי באגים אוטומטי או כפול כדי לנפות באגים ב-Java ובקוד Native, אם נכנסים לפונקציה מקומית מ- בקוד Java (לדוגמה, הכלי לניפוי באגים משהה את הביצוע בשורה קוד Java שקורא לפונקציית נייטיב ולוחצים על שלב אל ) ורוצים לחזור לקוד ה-Java, לוחצים על המשך התוכנית (במקום יציאה או מעבר נוסף ). תהליך האפליקציה עדיין יושהה, לכן צריך ללחוץ על המשך תוכנית ב-your-module-Java כדי להמשיך בהפעלה. מידע נוסף זמין במאמר בעיה 224385.

הכלי לניפוי באגים מקורי נתקע במהלך טעינת ספריות

בפעם הראשונה שמשתמשים בכלי המקורי לניפוי באגים אחרי השדרוג ל-Android ב-Studio בגרסה 4.2 ואילך, הכלי לניפוי באגים המקורי עשוי להפסיק להגיב במהלך הטעינה ספריות ממכשיר Android. בעיה זו נשארת במיקום קבוע וממשיכה לקרות גם אם עוצרים ומפעילים מחדש את הכלי לניפוי באגים. כדי לפתור את הבעיה, מוחקים את מטמון ה-LLDB ב-$USER/.lldb/module-cache/.

הכלי לניפוי באגים מקורי קריסות עם הכיתוב 'התהליך לניפוי באגים הסתיים עם קוד יציאה 127'

השגיאה הזו מתרחשת בפלטפורמות מבוססות Linux כשמפעילים את ה- לניפוי באגים מקורי. הוא מציין שאחת מהספריות שנדרשת על ידי קובץ ה-Native הכלי לניפוי באגים לא מותקן במערכת המקומית. שם הנעדרים ייתכן שהספרייה כבר מודפסת בקובץ idea.log. אם לא, אפשר להשתמש במסוף כדי לנווט לספריית ההתקנה של Android Studio ולהפעיל שורת הפקודה bin/lldb/bin/LLDBFrontend --version כדי ללמוד אילו ספריות חסרים. בדרך כלל, הספרייה החסרה היא ncurses5 כמו חלק מגרסת Linux האחרונה ההפצות כבר שודרגו ל-ncurses6.

רכיבי פרופיל

בקטע הזה מתוארות בעיות ידועות בכלי לניהול פרופילים.

Native Memory Profiler: יצירת פרופילים לא זמינה במהלך הפעלת האפליקציה

ה-Native Memory Profiler לא זמין כרגע במהלך ההפעלה של האפליקציה. הזה תהיה זמינה במהדורה עתידית.

כדי לעקוף את הבעיה, אפשר להשתמש בכלי נפרד של Perfetto בשורת הפקודה כדי לתעד פרופילים של הפעלה.

שגיאות זמן קצוב לתפוגה בכלי לניתוח ביצועי ה-CPU

ייתכן שתופיע ההודעה "ההקלטה נכשלה" שגיאות במעבד של Android Studio Profiler כשבוחרים באפשרות Sample Java Methods או Trace Java Methods הגדרות אישיות. בדרך כלל מדובר בשגיאות שקשורות לזמן קצוב, במיוחד אם הודעת השגיאה הבאה בקובץ idea.log:

Wait for ART trace file timed out

שגיאות הזמן הקצוב לתפוגה משפיעות על שיטות במעקב יותר מאשר שיטות שנדגמו, הקלטות ארוכות יותר מאשר הקלטות קצרות יותר. כפתרון זמני, כדאי לנסות הקלטות קצרות יותר כדי לראות אם השגיאה נעלמת.

אם נתקלת בבעיות של זמן קצוב לתפוגה בכלי ליצירת פרופילים, דווח על באג שכולל את היצרן/הדגם של המכשירים שלך וכל רשומה רלוונטית idea.log ו-Logcat.

חריג ADB במהלך ניפוי באגים או יצירת פרופילים

כשמשתמשים בכלי פלטפורמה בגרסה 29.0.3, ניפוי באגים נייטיב ו-Android Studio יכול להיות שכלי הפרופיל לא יפעלו כמו שצריך, ויכול להיות שתראו "AdbCommandDenyError" או "חיבור היציאה נכשל" בidea.log כשבוחרים באפשרות עזרה > הצגת היומן. שדרוג כלי הפלטפורמה ל- גרסה 29.0.4 ואילך פותרת את שתי הבעיות.

כדי לשדרג את כלי הפלטפורמה:

  1. כדי לפתוח את SDK Manager מ-Android Studio, לוחצים על כלים > SDK Manager או לוחצים על SDK Manager בסרגל הכלים.
  2. לוחצים על תיבת הסימון לצד Android SDK. פלטפורמה-כלים, כך שיופיע סימן וי. סמל הורדה אמור להופיע בעמודה הימנית.
  3. לוחצים על אישור או על אישור.

הפלאגין מונע את הפעולה של חלון פלט ה-Build

השימוש בפלאגין CMake Simple iconer מונע את הופעת התוכן חלון פלט של Build. ה-build פועל והכרטיסייה 'פלט בנייה' מופיעה, אבל לא הודפס פלט (גיליון מס' 204791544).

הזמנת ההתקנה מונעת הפעלה

יכול להיות שהתקנה של גרסה חדשה יותר של Android Studio לפני גרסה ישנה יותר למנוע את הפעלת הגרסה הישנה. לדוגמה, אם מתקינים תחילה את גרסה ראשונית של Android Studio, ואז לנסות להתקין ולהפעיל את הגרסה , ייתכן שהגרסה היציבה לא תופעל. במקרים כאלה, צריך מנקים את המטמון כדי לקבל את הגרסה היציבה (ישנה יותר) להפעלה. ב-macOS, למחוק למחוק את המטמון Library/ApplicationSupport/Google/AndroidStudioversion_number ב-Windows, כדי לנקות את השימוש במטמון ניקוי דיסק.

מקליט הבדיקה של אספרסו לא פועל עם 'כתיבה'

מכשיר הקלטה של אספרסו לא פועלת עם פרויקטים שכוללים 'כתיבה'. כדי ליצור בדיקות ממשק משתמש לפרויקטים שכוללות את הקטע 'כתיבה', ראו בדיקת פריסת הכתיבה.

מקשי הקיצור ל-Logcat מתנגשים עם פריסות מקלדת שאינן אנגלית

אם משתמשים בפריסת מקלדת שאינה אנגלית, ברירת המחדל של מקלדת Logcat היא מקש הקיצור עלול להתנגש עם הפריסה ולמנוע ממך להקליד בזמן עריכת טקסט ב-Android Studio. כדי לעקוף את הבעיה, למחוק או למפות מחדש את מפת המקשים של Logcat המתנגשת. כדי לערוך את מפות המקשים של Logcat, Android Studio, עוברים אל Android Studio > הגדרות > מיפוי מקשים וחיפוש Logcat ברשימת מפות המקשים. מידע נוסף זמין במאמר הבא: בעיה מס' 263475910.

כדי לפתור את הבעיה הזו, אפשר להסיר את קיצור הדרך של Logcat מ-Android. מדבקה לצלולית חשמלית בסטודיו 1.

בעיות מוכרות בפלאגין Android Gradle

בקטע הזה מתוארות בעיות ידועות שקיימות בגרסה היציבה האחרונה של הפלאגין Android Gradle.

לא כל יחסי התלות של ספריות תכונות דינמיות נבדקים

כשמפעילים איתור שגיאות בקוד (lint) עם checkDependencies = true ממודול של אפליקציה, יחסי תלות של ספריות תכונות דינמיות לא נבדקים, אלא אם הם גם אפליקציה של יחסי התלות (גיליון מס' 191977888). כדי לעקוף את הבעיה, אפשר להריץ את המשימה של איתור השגיאות בקוד בספריות האלה.

קובץ חתימה בשם עם תווי חזרה לתחילת השורה

חתימת JAR (סכמת v1) לא תומכת בשמות קבצים שמכילים רכיב המרה תווי חזרה (גיליון מס' 63885809).

יכול להיות ששינוי פלטי וריאנטים בזמן ה-build לא יפעל

השימוש ב-וריאנט API כדי לתמרן פלט של וריאנטים לא תקין יישומי פלאגין. הוא עדיין מתאים למשימות פשוטות, כמו שינוי שם ה-APK במהלך זמן ה-build, כפי שמוצג בהמשך:

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

אבל משימות מורכבות יותר שכוללות גישה ל-outputFile אובייקטים הן לא פועלות יותר. הסיבה לכך היא שמשימות ספציפיות לווריאנטים כבר לא נוצרות בשלב ההגדרה. התוצאה היא שהפלאגין לא יודע את כל משתני הפלט מראש, אבל המשמעות היא גם זמני הגדרה מהירים יותר.

המניפסט של קובץ המניפסט לא זמין יותר

השיטה processManifest.manifestOutputFile() כבר לא בתוקף זמינה, ומקבלים את השגיאה הבאה כשמפעילים אותה:

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

במקום לקרוא ל-manifestOutputFile() כדי לקבל את קובץ המניפסט של אפשר לקרוא ל-processManifest.manifestOutputDirectory() כדי להחזיר של הספרייה שמכילה את כל המניפסטים שנוצרו. לאחר מכן אפשר לאתר מניפסט ולהחיל עליו את הלוגיקה שלכם. הדוגמה הבאה באופן דינמי משנה את קוד הגרסה במניפסט:

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

בעיות עם תמיכה ב-AGP 7.3.0 AIDL וב-Kotlin 1.7.x

שימוש ב-AGP 7.3.0 עם KAPT ב-Kotlin 1.7.x גורם לקבוצות המקור של AIDL עבור וריאנטים ספציפיים של build יוסרו. עדיין אפשר להשתמש במקור אחר של AIDL קבוצות, כולל אלה של main/, סוגי build, טעמים של מוצרים ושילובים בטעמים שונים של מוצרים. אם צריך להשתמש בקבוצות מקורות AIDL שספציפיות לווריאנט, ממשיכים להשתמש ב-Kotlin 1.6.21.

בעיות ידועות תוקנו

בקטע הזה מתוארות בעיות ידועות שתוקנו בגרסה האחרונה. אם המיקום נתקלת באחת מהבעיות האלה, עליך לעדכן את Android Studio לגרסה היציבה האחרונה או לגרסת התצוגה המקדימה.

קבוע ב-Android Studio 2021.1.1

  • פלט של איתור שגיאות בקוד חסר: לא נשלח פלט טקסט של איתור שגיאות בקוד של stdout אם משימת איתור השגיאות בקוד היא UP-TO-DATE (גיליון מס' 191897708). קבוע ב- AGP 7.1.0-alpha05.
  • בעיות בבדיקת יחידה (unit testing) של פרויקט באפליקציה שנעשה בו שימוש בפלאגין Hilt: הנתיב של בדיקת היחידה מכיל את מחלקות האפליקציות ללא אינסטרומנטציה, כלומר Hilt לא מאפשר למחלקות של האפליקציה לטפל בהחדרת תלות כאשר בדיקות יחידה (unit testing) (גיליון מס' 213534628). קבוע ב-AGP 7.1.1.

קבוע ב-Android Studio 2020.3.1

  • חריגים מסוג Lint בפרויקטים של Kotlin: פרויקטים ב-Kotlin checkDependencies = true עלול לגרום לחריגות או לשגיאות של מצביע null (גיליון מס' 158777858).

קבוע ב-Android Studio 4.2

  • מערכת פיתוח משולבת (IDE) קופאת ב-macOS Big Sur: Android Studio 4.1 עשוי לקפוא בזמן פותחים תיבת דו-שיח.

קבוע ב-Android Studio 4.1

  • צריך להפעיל מחדש כדי להחיל את הגדרות הזיכרון מהגרסה הקודמת של סביבת הפיתוח המשולבת (IDE): אחרי כשמעדכנים את Android Studio, צריך להפעיל מחדש את Android Studio כדי להחיל הגדרות הזיכרון הועברו מגרסה קודמת של סביבת הפיתוח המשולבת (IDE).
  • מחלקת מניפסט עם מחרוזות הרשאות בהתאמה אישית לא נוצרת יותר על ידי ברירת מחדל: אם רוצים ליצור את הכיתה, הגדירו android.generateManifestClass = true.

קבוע ב-Android Studio 3.6

  • שגיאה בהתקנת APK ב-LineageOS: פריסת האפליקציה במכשירים הרצה של גרסאות מסוימות של LineageOS או CyanogenMod עלולה להיכשל ולהשתיק חריג מסוג INSTALL_PARSE_FAILED_NOT_APK.

    ב-Android Studio 3.6 Beta 1 ואילך, סביבת הפיתוח המשולבת (IDE) מטפלת בחריג הזה על ידי ביצוע התקנה מלאה של האפליקציה בזמן פריסת האפליקציה למכשירי LineageOS או CyanogenMod, מה שעלול לגרום לפריסה ארוכה יותר פעמים.

קבוע ב-Android Studio 3.5.2

  • סגנון קוד XML לא תקין: במהלך עריכת קוד XML, סביבת הפיתוח המשולבת (IDE) החילה סגנון קוד שגוי כשבוחרים באפשרות קוד > לפרמט מחדש את הקוד מתוך סרגל תפריטים.

קבוע ב-Android Studio 3.3.1

  • חסרות שגיאות זיכרון בסריקה של פרויקטים מבוססי C++: בזמן הסריקה של Gradle בפרויקט שיש לו קוד C++ ביותר ממיקום אחד באותו אחסון, הסריקה כוללת את כל הספריות שמתחת לספרייה המשותפת הראשונה. מתבצעת סריקה מספר גדול של ספריות וקבצים עלול לגרום לשגיאות זיכרון.

    לקבלת מידע נוסף על הבעיה הזו, אפשר לקרוא את הבאג שמשויך אל בעיה.