Android 問題
- 如果使用隨附的 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 { *; }
- 如果使用 Bitmap 建構 InputImage,且 rotationDegrees 不為零,則 FaceDetection API 會發生「無效的旋轉」MlKitException,因為
com.google.mlkit:face-detection:16.0.5
和com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4
。請使用舊版,並等待下一個版本發布,其中會修正這個問題。 在部分搭載 camera-camera2:1.0.0-beta08 以上版本的裝置上,
com.google.mlkit:barcode-scanning:16.1.0
和com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3
之前的 BarcodeScanning SDK 無法運作。您可以改用舊版 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 轉換圖片格式需要更多時間。
工作回呼可能會在註冊的 Activity 或 Fragment 遭到刪除後執行。如果回呼嘗試存取這段期間已關閉的偵測器,可能會導致例外狀況。如果您在 Activity 中使用 ML Kit,可以註冊 Activity 範圍的監聽器,該監聽器會在 Activity 停止時自動移除。如果您在 Fragment 或其他環境中使用 ML Kit,可以提供自訂執行器,在 Fragment 遭到終止時關閉執行作業。如需範例,請參閱 Vision 快速入門導覽課程中的
ScopedExecutor.Java
。如果圖片標記的圖片格式不是點陣圖,與 Google Play 服務相關的「精簡」變體相比,隨附的變體效能較佳。
如果是 Digital Ink
com.google.mlkit:digital-ink-recognition:17.0.0
或更早版本,以及 Entity Extractioncom.google.mlkit:entity-extraction:16.0.0-beta2
或更早版本,如果您將targetSdkVersion
設為 31 並在 Android S 上執行,系統會傳回下列執行階段例外狀況。 這個問題已在較新版本中修正。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.如果偏好使用舊版,您可以將
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 模擬器。
- 翻譯
'GoogleMLKit/Translate', '4.0.0'
以上版本和智慧回覆'GoogleMLKit/SmartReply', '4.0.0'
以上版本不支援 X86_64 模擬器。