בעיות מוכרות

בעיות ב-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 מסוג "invalid rotation" ב-FaceDetection API מאז גרסה com.google.mlkit:face-detection:16.0.5 וגרסה com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4. צריך להשתמש בגרסה קודמת ולהמתין לגרסה הבאה שלנו, שכוללת את התיקון לבעיה הזו.
  • ערכות SDK לסריקת ברקודים שקדמו לגרסאות 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.

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

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

  • ב-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 לא נתמך ב-Translation בגרסה 'GoogleMLKit/Translate', '4.0.0' ואילך וב-Smart Reply בגרסה 'GoogleMLKit/SmartReply', '4.0.0' ואילך.