## Android issues

- In `com.google.mlkit:genai-prompt:1.0.0-beta3` and `com.google.mlkit:genai-prompt:1.0.0-beta4`, calling `download()` throws a `java.lang.NoSuchMethodError` when the model download completes or is canceled if the app resolves `kotlinx-coroutines` to 1.10.x or earlier. As a workaround, explicitly pin `kotlinx-coroutines-android` to `1.11.0` or newer in your Gradle dependencies until we provide a fix in the next release.
- In `com.google.mlkit:genai-prompt:1.0.0-beta3` and `com.google.mlkit:genai-prompt:1.0.0-beta4`, running inference with prefix caching fails on nano-v4 models when `ModelConfig` is set to `ModelPreference.FAST`. As a workaround, omit the `ModelConfig` setting to use the default configuration, until we provide a fix in the next release.
- In `com.google.mlkit:genai-prompt:1.0.0-beta3`, calling `checkStatus()` on non-Pixel devices throws an unhandled `GenAiException`. Use a later version (`com.google.mlkit:genai-prompt:1.0.0-beta4` or later).
- For bundled Language ID, the app may crash when upgrading to AGP 7.0.0 or later. To avoid the crash in `com.google.mlkit:language-id:16.1.1` or earlier, include the rule below:

  ```
  -keep class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { *; }
  ```
  To avoid the crash in `com.google.mlkit:language-id:17.0.0` or `com.google.mlkit:language-id:17.0.1`, include the rule below:

  ```
  -keep class com.google.mlkit.nl.languageid.internal.ThickLanguageIdentifier { *; }
  ```
- InputImage constructed by Bitmap with a non zero rotationDegrees causes an "invalid rotation" MlKitException for FaceDetection API since `com.google.mlkit:face-detection:16.0.5` and `com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4`. Please use an earlier version and wait for our next release which includes the fix for this issue.
- BarcodeScanning SDKs pior to `com.google.mlkit:barcode-scanning:16.1.0`
  and `com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3`
  do not work on some devices running with camera-camera2:1.0.0-beta08 version or later.
  You can use an earlier version of camera-camera2 to bypass this issue. For example:

  ```
  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"
  ```

  <br />

- Native methods might be obfuscated by custom rules in `com.google.mlkit:language-id:16.1.1` or earlier.
  Include the following rule to keep them if you encounter errors like `java.lang.UnsatisfiedLinkError`:

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

  <br />

- For the Text Recognition, Image Labeling, and Object Detection and
  Tracking APIs, the performance with CameraX and Camera2 is still not on par
  with Camera1, because it takes more time to do format conversion for image
  from CameraX and Camera2.

- [Task](https://developers.google.com/android/guides/tasks.md.txt)
  callbacks might execute after the Activity or Fragment in which they have been
  registered has been destroyed. This might lead to an exception if the callback
  tries to access a detector that has been closed in the meantime. If you are
  using ML Kit in an Activity, you can register an
  [Activity-scoped listener](https://developers.google.com/android/guides/tasks.md.txt#activity-scoped_listeners),
  which is automatically removed when the Activity is stopped. If you are
  using ML Kit in a Fragment or other environment, you can provide a custom
  executor that shuts down execution when the Fragment is destroyed. See
  `ScopedExecutor.Java` in the [Vision Quickstart](https://github.com/googlesamples/mlkit/tree/master/android/vision-quickstart) for an
  example.

- For Image Labeling with image formats other than Bitmap, bundled variant
  has better performance than "thin" variant that depends on Google Play Services.

- For Digital Ink `com.google.mlkit:digital-ink-recognition:17.0.0` or earlier
  and Entity Extraction `com.google.mlkit:entity-extraction:16.0.0-beta2` or earlier,
  you will get the following runtime exception if you set `targetSdkVersion` to 31
  and run on 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.

  This issue is fixed in our more recent releases.

  <br />

  If you prefer using older versions, you can either set `targetSdkVersion` to
  less than 31 or add the following to your `build.gradle` as a workaround.

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

  <br />

## iOS issues

- Simulators on M1-based Mac are not supported.
- X86_64 simulator is not supported for Translation `'GoogleMLKit/Translate', '4.0.0'` or later and Smart Reply `'GoogleMLKit/SmartReply', '4.0.0'` or later.