已知问题

Android 问题

  • 在 com.google.mlkit:genai-prompt:1.0.0-beta3 和 com.google.mlkit:genai-prompt:1.0.0-beta4 中,如果应用将 kotlinx-coroutines 解析为 1.10.x 或更早版本,则在模型下载完成或取消时,调用 download() 会抛出 java.lang.NoSuchMethodError。作为权宜解决方法,请在 Gradle 依赖项中将 kotlinx-coroutines-android 显式固定到 1.11.0 或更高版本,直到我们在下一个版本中提供修复。
  • 在 com.google.mlkit:genai-prompt:1.0.0-beta3 和 com.google.mlkit:genai-prompt:1.0.0-beta4 中,当 ModelConfig 设置为 ModelPreference.FAST 时,在 nano-v4 模型上使用前缀缓存运行推理会失败。作为一种解决方法,请省略 ModelConfig 设置以使用默认配置,直到我们在下一个版本中提供修复。
  • 在 com.google.mlkit:genai-prompt:1.0.0-beta3 中,在非 Pixel 设备上调用 checkStatus() 会抛出未处理的 GenAiException。使用更高版本(com.google.mlkit:genai-prompt:1.0.0-beta4 或更高版本)。
  • 对于捆绑式语言识别,升级到 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 { *; }
  • 自 com.google.mlkit:face-detection:16.0.5 和 com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4 起,由 Bitmap 构造且 rotationDegrees 不为零的 InputImage 会导致 FaceDetection API 出现“无效旋转”MlKitException。请使用较低版本,并等待我们发布包含此问题修复程序的下一个版本。
  • com.google.mlkit:barcode-scanning:16.1.0 和 com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3 之前的 BarcodeScanning SDK 无法在运行 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 或 Fragment 被销毁后执行。如果回调尝试访问在此期间已关闭的检测器,则可能会导致异常。如果您在 Activity 中使用机器学习套件,则可以注册一个 Activity 范围的监听器,该监听器会在 Activity 停止时自动移除。如果您在 Fragment 或其他环境中使用机器学习套件,则可以提供一个自定义执行器,以便在 Fragment 被销毁时关闭执行。如需查看示例,请参阅 Vision 快速入门中的 ScopedExecutor.Java。

  • 对于使用位图以外的图片格式的图片标签,捆绑变体比依赖于 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 问题

  • 不支持基于 M1 的 Mac 上的模拟器。
  • Translation 'GoogleMLKit/Translate', '4.0.0' 或更高版本以及 Smart Reply 'GoogleMLKit/SmartReply', '4.0.0' 或更高版本不支持 X86_64 模拟器。