בעיות ידועות

בעיות ב-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 { *; }
    
  • קלטImage שנבנה על ידי Bitmap עם סיבוב ללא אפס מעלות גורם ל'סיבוב לא חוקי' MlKit מבוססי API ל-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"
    

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

  • לגבי הוספת תוויות לתמונות עם פורמטים אחרים של תמונות שאינם 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' ואילך.