בעיות מוכרות

בעיות ב-Android

  • עבור מזהה שפה בחבילה, האפליקציה עלולה לקרוס במהלך השדרוג ל-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 { *; }
  • קלט תמונה שנבנה על ידי Bitmap עם ערך סיבובי לא אפס גורמת ל"סיבוב לא חוקי" MlKitנוציא משימוש ל-FaceDetection API החל מ-com.google.mlkit:face-detection:16.0.5 ו-com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4. יש להשתמש באחד מהשמות הקודמים ולהמתין למהדורה הבאה שכוללת את התיקון לבעיה הזו.
  • ערכות BarcodeScanning SDK מעבר ל-com.google.mlkit:barcode-scanning:16.1.0 ו-com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3 לא פועלות במכשירים מסוימים עם מצלמה-מצלמה 2: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"

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

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

  • לדיו דיגיטלי com.google.mlkit:digital-ink-recognition:17.0.0 או מוקדם יותר וחילוץ ישות 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' ואילך.