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

Проблемы с 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 в зависимостях Gradle на уровне 1.11.0 или выше, пока мы не выпустим исправление в следующем релизе.
  • В 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, то при использовании FaceDetection API будет возникать исключение MlKitException с сообщением "invalid rotation", поскольку 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 уходит больше времени.

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

  • Для разметки изображений в форматах, отличных от растрового, вариант с пакетом работает лучше, чем "тонкий" вариант, который зависит от сервисов 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 не поддерживается для функции "Перевод" 'GoogleMLKit/Translate', '4.0.0' и более поздних версий и функции "Быстрые ответы" 'GoogleMLKit/SmartReply', '4.0.0' и более поздних версий.