Android issues
- 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: To avoid the crash in-keep class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { *; }
com.google.mlkit:language-id:17.0.0
orcom.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
andcom.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
andcom.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"
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 likejava.lang.UnsatisfiedLinkError
:-keepclasseswithmembernames class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { native <methods>; }
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 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, 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 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 Extractioncom.google.mlkit:entity-extraction:16.0.0-beta2
or earlier, you will get the following runtime exception if you settargetSdkVersion
to 31 and run on Android S. This issue is fixed in our more recent releases.Targeting S+ (version 31 and above) requires that one of
FLAG_IMMUTABLE
orFLAG_MUTABLE
be specified when creating aPendingIntent
. AndroidRuntime: Strongly consider usingFLAG_IMMUTABLE
, only useFLAG_MUTABLE
if some functionality depends on thePendingIntent
being mutable, e.g. if it needs to be used with inline replies or bubbles.If you prefer using older versions, you can either set
targetSdkVersion
to less than 31 or add the following to yourbuild.gradle
as a workaround.// For apps targeting Android S+, add the following constraints { implementation 'androidx.work:work-runtime:2.7.0-alpha04' }
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.