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

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

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

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

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

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

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

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

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

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

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

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

החל מגרסה 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

אפליקציות שמשתמשות ב-Database Inspector עשויות לקרוס כשהן פועלות במהלך הדמיה של 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>. לדוגמה, גרסאות build של Android Studio 4.1 Canary משתמשות ב-AndroidStudioPreview4.1, במקום בספרייה AndroidStudio4.1 שמשמשת לגרסאות Release Candidate ולגרסאות יציבות.

בעיית הידור בפרויקטים מרובי פלטפורמות ב-Kotlin

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

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

בקטע הזה מתוארות בעיות ידועות שקשורות להגדרות של פרויקט ול-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

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

כלים לניתוח ביצועים (profilers)

בקטע הזה מתוארות בעיות ידועות במוצרי Profiler.

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 יכול להיות שכלי הפרופיל לא יפעלו כמו שצריך, ויכול להיות שתראו "AdbCommandRejectedError" או "חיבור היציאה נכשל" בidea.log כשבוחרים באפשרות עזרה > הצגת היומן. שדרוג כלי הפלטפורמה ל- גרסה 29.0.4 ואילך פותרת את שתי הבעיות.

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

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

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

השימוש בפלאגין CMake Simple Markuper מונע את הצגת תוכן חלון פלט של 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)
        }
    }
}

בעיות בתמיכה ב-AIDL של AGP 7.3.0 וב-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

  • חריגים לציון שגיאות בקוד בפרויקטים של 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).
  • מחלקת מניפסט עם מחרוזות הרשאות בהתאמה אישית לא נוצרת יותר על ידי default: אם רוצים ליצור את הכיתה, צריך להגדיר android.generateManifestClass = true.

הבעיה נפתרה ב-Android Studio 3.6

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

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

קבוע ב-Android Studio 3.5.2

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

הבעיה נפתרה ב-Android Studio 3.3.1

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

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