Известные проблемы

Проблемы с 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 "Недопустимый поворот" для 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 Text Recognition, Image Labeling и Object Detection and Tracking производительность CameraX и Camera2 по-прежнему уступает Camera1, поскольку на преобразование формата изображения из CameraX и Camera2 уходит больше времени.

  • Обратные вызовы Task могут выполняться после удаления объекта activity или фрагмента, в котором они были зарегистрированы. Это может привести к исключению, если обратный вызов попытается получить доступ к детектору, который был закрыт за это время. Если вы используете ML Kit в Activity, то можете зарегистрировать слушатель в области действия Activity, который будет автоматически удален при остановке Activity. Если вы используете ML Kit во фрагменте или другой среде, вы можете предоставить собственный исполнитель, который завершает выполнение при уничтожении фрагмента. Пример приведен в разделе ScopedExecutor.Java краткого руководства по Vision API.

  • Для маркировки изображений в графических форматах, отличных от битовой карты, встроенный вариант работает лучше, чем "тонкий", который зависит от сервисов Google Play.

  • Если вы используете 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' и более поздних версий, а также для быстрого ответа 'GoogleMLKit/SmartReply', '4.0.0' и более поздних версий.