Errores conocidos

Problemas en Android

  • En com.google.mlkit:genai-prompt:1.0.0-beta3 y com.google.mlkit:genai-prompt:1.0.0-beta4, llamar a download() arroja una java.lang.NoSuchMethodError cuando se completa o se cancela la descarga del modelo si la app resuelve kotlinx-coroutines en la versión 1.10.x o una anterior. Como solución alternativa, fija de forma explícita kotlinx-coroutines-android en 1.11.0 o una versión posterior en tus dependencias de Gradle hasta que proporcionemos una corrección en la próxima versión.
  • En com.google.mlkit:genai-prompt:1.0.0-beta3 y com.google.mlkit:genai-prompt:1.0.0-beta4, la ejecución de la inferencia con el almacenamiento en caché de prefijos falla en los modelos nano-v4 cuando ModelConfig se establece en ModelPreference.FAST. Como solución alternativa, omite el parámetro de configuración ModelConfig para usar la configuración predeterminada hasta que proporcionemos una solución en la próxima versión.
  • En com.google.mlkit:genai-prompt:1.0.0-beta3, llamar a checkStatus() en dispositivos que no son Pixel arroja una GenAiException no controlada. Usa una versión posterior (com.google.mlkit:genai-prompt:1.0.0-beta4 o posterior).
  • En el caso del ID de idioma empaquetado, es posible que la app falle cuando se actualice a AGP 7.0.0 o una versión posterior. Para evitar la falla en com.google.mlkit:language-id:16.1.1 o versiones anteriores, incluye la siguiente regla:
    -keep class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { *; }
    Para evitar la falla en com.google.mlkit:language-id:17.0.0 o com.google.mlkit:language-id:17.0.1, incluye la siguiente regla:
    -keep class com.google.mlkit.nl.languageid.internal.ThickLanguageIdentifier { *; }
  • InputImage construido por Bitmap con un rotationDegrees distinto de cero causa una MlKitException de "rotación no válida" para la API de FaceDetection desde com.google.mlkit:face-detection:16.0.5 y com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4. Usa una versión anterior y espera a que se lance la próxima versión, que incluirá la corrección de este problema.
  • Los SDK de BarcodeScanning anteriores a com.google.mlkit:barcode-scanning:16.1.0 y com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3 no funcionan en algunos dispositivos que ejecutan la versión camera-camera2:1.0.0-beta08 o posterior. Puedes usar una versión anterior de camera-camera2 para evitar este problema. Por ejemplo:

    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"

  • Es posible que las reglas personalizadas en com.google.mlkit:language-id:16.1.1 o versiones anteriores ofusquen los métodos nativos. Incluye la siguiente regla para conservarlas si encuentras errores como java.lang.UnsatisfiedLinkError:

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

  • En el caso de las APIs de reconocimiento de texto, etiquetado de imágenes, y detección y seguimiento de objetos, el rendimiento con CameraX y Camera2 aún no está a la par de Camera1, ya que lleva más tiempo realizar la conversión de formato de imagen de CameraX y Camera2.

  • Las devoluciones de llamada de Task podrían ejecutarse después de que se destruya la actividad o el fragmento en el que se registraron. Esto podría generar una excepción si la devolución de llamada intenta acceder a un detector que se cerró mientras tanto. Si usas el ML Kit en una actividad, puedes registrar un objeto de escucha con alcance de actividad, que se quita automáticamente cuando se detiene la actividad. Si usas ML Kit en un fragmento o en otro entorno, puedes proporcionar un ejecutor personalizado que detenga la ejecución cuando se destruya el fragmento. Consulta ScopedExecutor.Java en la guía de inicio rápido de Vision para ver un ejemplo.

  • Para el etiquetado de imágenes con formatos de imagen que no sean de mapa de bits, la variante empaquetada tiene un mejor rendimiento que la variante "delgada" que depende de los Servicios de Google Play.

  • Para Digital Ink com.google.mlkit:digital-ink-recognition:17.0.0 o versiones anteriores y Extracción de entidades com.google.mlkit:entity-extraction:16.0.0-beta2 o versiones anteriores, obtendrás la siguiente excepción de tiempo de ejecución si configuras targetSdkVersion en 31 y ejecutas en 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.
    
    Este problema se corrigió en nuestras versiones más recientes.

    Si prefieres usar versiones anteriores, puedes establecer targetSdkVersion en un valor inferior a 31 o agregar lo siguiente a tu build.gradle como solución alternativa.

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

Problemas en iOS

  • No se admiten los simuladores en Mac basadas en M1.
  • El simulador X86_64 no es compatible con Translation 'GoogleMLKit/Translate', '4.0.0' o versiones posteriores, ni con Respuesta inteligente 'GoogleMLKit/SmartReply', '4.0.0' o versiones posteriores.