Znane problemy

Problemy z Androidem

  • W przypadku com.google.mlkit:genai-prompt:1.0.0-beta3 i com.google.mlkit:genai-prompt:1.0.0-beta4 wywołanie download() powoduje zgłoszenie błędu java.lang.NoSuchMethodError po zakończeniu lub anulowaniu pobierania modelu, jeśli aplikacja rozpoznaje kotlinx-coroutines jako wersję 1.10.x lub starszą. Aby obejść ten problem, przypnij kotlinx-coroutines-android do wersji 1.11.0 lub nowszej w zależnościach Gradle, dopóki nie udostępnimy poprawki w następnej wersji.
  • W wersjach com.google.mlkit:genai-prompt:1.0.0-beta3 i com.google.mlkit:genai-prompt:1.0.0-beta4 wnioskowanie z buforowaniem prefiksów nie działa w przypadku modeli nano-v4, gdy parametr ModelConfig jest ustawiony na ModelPreference.FAST. Aby obejść ten problem, pomiń ustawienie ModelConfig, aby użyć konfiguracji domyślnej, dopóki nie udostępnimy poprawki w następnej wersji.
  • W com.google.mlkit:genai-prompt:1.0.0-beta3 wywołanie checkStatus() na urządzeniach innych niż Pixel powoduje nieobsługiwany błąd GenAiException. Użyj nowszej wersji (com.google.mlkit:genai-prompt:1.0.0-beta4 lub nowszej).
  • W przypadku pakietu Language ID aplikacja może ulec awarii po uaktualnieniu do wtyczki Androida do obsługi Gradle w wersji 7.0.0 lub nowszej. Aby uniknąć awarii w wersji com.google.mlkit:language-id:16.1.1 lub starszej, dodaj tę regułę:
    -keep class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { *; }
    Aby uniknąć awarii w com.google.mlkit:language-id:17.0.0 lub com.google.mlkit:language-id:17.0.1, dodaj poniższą regułę:
    -keep class com.google.mlkit.nl.languageid.internal.ThickLanguageIdentifier { *; }
  • Obiekt InputImage utworzony przez Bitmap z wartością rotationDegrees inną niż zero powoduje błąd MlKitException „nieprawidłowy obrót” w przypadku interfejsu FaceDetection API od wersji com.google.mlkit:face-detection:16.0.5 i com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4. Użyj wcześniejszej wersji i poczekaj na kolejną, która będzie zawierać poprawkę tego błędu.
  • Pakiety SDK do skanowania kodów kreskowych w wersji starszej niż com.google.mlkit:barcode-scanning:16.1.0 i com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3 nie działają na niektórych urządzeniach z biblioteką camera-camera2 w wersji 1.0.0-beta08 lub nowszej. Aby obejść ten problem, możesz użyć wcześniejszej wersji camera-camera2. Na przykład:

    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"

  • Metody natywne mogą być zaciemniane przez reguły niestandardowe w wersji com.google.mlkit:language-id:16.1.1 lub starszej. Jeśli wystąpią błędy takie jak java.lang.UnsatisfiedLinkError, dodaj tę regułę, aby zachować te elementy:

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

  • W przypadku interfejsów API rozpoznawania tekstu, etykietowania obrazów oraz wykrywania i śledzenia obiektów wydajność CameraX i Camera2 nadal nie jest na poziomie Camera1, ponieważ konwersja formatu obrazu z CameraX i Camera2 zajmuje więcej czasu.

  • Wywołania zwrotne Task mogą zostać wykonane po zniszczeniu aktywności lub fragmentu, w którym zostały zarejestrowane. Może to spowodować wyjątek, jeśli wywołanie zwrotne spróbuje uzyskać dostęp do detektora, który został zamknięty w międzyczasie. Jeśli używasz ML Kit w aktywności, możesz zarejestrować detektor o zakresie aktywności, który jest automatycznie usuwany po zatrzymaniu aktywności. Jeśli używasz ML Kit we fragmencie lub innym środowisku, możesz podać niestandardowy obiekt wykonujący, który zatrzyma wykonywanie, gdy fragment zostanie zniszczony. Przykład znajdziesz w sekcji ScopedExecutor.Java w krótkim wprowadzeniu do Vision.

  • W przypadku etykietowania obrazów w formatach plików graficznych innych niż bitmapa wariant pakietowy ma lepszą wydajność niż wariant „thin”, który zależy od Usług Google Play.

  • W przypadku cyfrowego atramentu w wersji com.google.mlkit:digital-ink-recognition:17.0.0 lub starszej oraz wyodrębniania encji w wersji com.google.mlkit:entity-extraction:16.0.0-beta2 lub starszej otrzymasz ten wyjątek czasu działania, jeśli ustawisz targetSdkVersion na 31 i uruchomisz na Androidzie 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.
    
    Ten problem został rozwiązany w nowszych wersjach.

    Jeśli wolisz używać starszych wersji, możesz ustawić targetSdkVersion na wartość mniejszą niż 31 lub dodać do build.gradle poniższy kod.

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

problemy z iOS,

  • Symulatory na komputerach Mac z procesorem M1 nie są obsługiwane.
  • Symulator X86_64 nie jest obsługiwany w przypadku Tłumaczenia w wersji 'GoogleMLKit/Translate', '4.0.0' lub nowszej ani Inteligentnej odpowiedzi w wersji 'GoogleMLKit/SmartReply', '4.0.0' lub nowszej.