בעיות מוכרות

בעיות ב-Android

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

  • לסימון תמונות עם פורמטים של תמונות שאינם 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 לתרגום 'GoogleMLKit/Translate', '4.0.0' ומעלה ולתשובות חכמות 'GoogleMLKit/SmartReply', '4.0.0' ומעלה.