בעיות מוכרות

בעיות ב-Android

  • ב-com.google.mlkit:genai-prompt:1.0.0-beta3 וב-com.google.mlkit:genai-prompt:1.0.0-beta4, קריאה ל-download() מעלה את java.lang.NoSuchMethodError כשההורדה של המודל מסתיימת או מבוטלת אם האפליקציה פותרת את kotlinx-coroutines ל-1.10.x או לגרסה מוקדמת יותר. כפתרון עקיף, אפשר להצמיד באופן מפורש את kotlinx-coroutines-android ל-1.11.0 או לגרסה חדשה יותר ביחסי התלות של Gradle עד שנספק תיקון בגרסה הבאה.
  • ב-com.google.mlkit:genai-prompt:1.0.0-beta3 וב-com.google.mlkit:genai-prompt:1.0.0-beta4, הפעלת הסקה עם שמירת מטמון של קידומת נכשלת במודלים של nano-v4 כש-ModelConfig מוגדר ל-ModelPreference.FAST. כפתרון עקיף, אפשר להשמיט את ההגדרה ModelConfig כדי להשתמש בהגדרת ברירת המחדל, עד שנספק תיקון בגרסה הבאה.
  • ב-com.google.mlkit:genai-prompt:1.0.0-beta3, קריאה ל-checkStatus() במכשירים שאינם Pixel גורמת ל-GenAiException שלא טופל. להשתמש בגרסה מאוחרת יותר (com.google.mlkit:genai-prompt:1.0.0-beta4 ואילך).
  • במקרה של Language ID בחבילה, האפליקציה עלולה לקרוס כשמשדרגים ל-AGP 7.0.0 ואילך. כדי למנוע את הקריסה בגרסה com.google.mlkit:language-id:16.1.1 או בגרסאות קודמות, צריך לכלול את הכלל הבא:
    -keep class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { *; }
    כדי למנוע את הקריסה ב-com.google.mlkit:language-id:17.0.0 או ב-com.google.mlkit:language-id:17.0.1, צריך לכלול את הכלל הבא:
    -keep class com.google.mlkit.nl.languageid.internal.ThickLanguageIdentifier { *; }
  • ‫InputImage שנוצר על ידי Bitmap עם rotationDegrees שאינו אפס גורם ל-MlKitException עם 'סיבוב לא תקין' עבור FaceDetection API כי com.google.mlkit:face-detection:16.0.5 ו-com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4. מומלץ להשתמש בגרסה קודמת ולהמתין לגרסה הבאה שלנו, שתכלול את התיקון לבעיה הזו.
  • ערכות SDK של BarcodeScanning בגרסאות קודמות ל-com.google.mlkit:barcode-scanning:16.1.0 ול-com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3 לא פועלות בחלק מהמכשירים שפועלים עם מצלמה בגרסה camera-camera2:1.0.0-beta08 ואילך. כדי לעקוף את הבעיה הזו, אפשר להשתמש בגרסה קודמת של camera-camera2. לדוגמה:

    implementation "androidx.camera:camera-core:1.0.0-beta07"
    implementation "androidx.camera:camera-camera2:1.0.0-beta07"
    implementation "androidx.camera:camera-view:1.0.0-alpha14"
    implementation "androidx.camera:camera-extensions:1.0.0-alpha14"
    implementation "androidx.camera:camera-lifecycle:1.0.0-beta07"

  • יכול להיות שכללים מותאמים אישית בגרסה com.google.mlkit:language-id:16.1.1 או בגרסאות קודמות יסתירו שיטות מקוריות. אם נתקלים בשגיאות כמו java.lang.UnsatisfiedLinkError, צריך לכלול את הכלל הבא כדי לשמור אותם:

    -keepclasseswithmembernames class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni {
      native <methods>;
    }

  • בממשקי ה-API של זיהוי טקסט, תיוג תמונות, זיהוי אובייקטים ומעקב אחריהם, הביצועים עם CameraX ו-Camera2 עדיין לא משתווים לביצועים עם Camera1, כי נדרש יותר זמן לביצוע המרת פורמט לתמונה מ-CameraX ומ-Camera2.

  • יכול להיות שקריאות חוזרות (callback) של משימות יופעלו אחרי שהפעילות או הפריט שבהם הן נרשמו יושמדו. יכול להיות שזה יוביל לחריגה אם פונקציית הקריאה החוזרת תנסה לגשת לגלאי שנסגר בינתיים. אם אתם משתמשים ב-ML Kit בפעילות, אתם יכולים לרשום מאזין בהיקף פעילות, שמוסר אוטומטית כשהפעילות מופסקת. אם אתם משתמשים ב-ML Kit ב-Fragment או בסביבה אחרת, אתם יכולים לספק executor בהתאמה אישית שמפסיק את ההרצה כש-Fragment מושמד. דוגמה מופיעה בקטע ScopedExecutor.Java במדריך למתחילים ב-Vision.

  • לתווית תמונה עם פורמטים של תמונות שאינם מפת סיביות, לגרסה המצורפת יש ביצועים טובים יותר מאשר לגרסה ה "דקה" שתלויה בשירותי Google Play.

  • אם משתמשים ב-Digital Ink בגרסה com.google.mlkit:digital-ink-recognition:17.0.0 או בגרסה קודמת, או ב-Entity Extraction בגרסה com.google.mlkit:entity-extraction:16.0.0-beta2 או בגרסה קודמת, תקבלו את חריגת זמן הריצה הבאה אם תגדירו את targetSdkVersion ל-31 ותפעילו ב-Android S.

    Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
    AndroidRuntime: Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
    
    הבעיה הזו נפתרה בגרסאות האחרונות שלנו.

    אם אתם מעדיפים להשתמש בגרסאות ישנות יותר, אתם יכולים להגדיר את targetSdkVersion לערך שקטן מ-31 או להוסיף את הקוד הבא ל-build.gradle כפתרון עקיף.

    // For apps targeting Android S+, add the following
    constraints {
      implementation 'androidx.work:work-runtime:2.7.0-alpha04'
    }

בעיות ב-iOS

  • אין תמיכה בסימולטורים ב-Mac מבוסס M1.
  • אין תמיכה בסימולטור X86_64 לתרגום 'GoogleMLKit/Translate', '4.0.0' ומעלה ולתשובות חכמות 'GoogleMLKit/SmartReply', '4.0.0' ומעלה.