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 { *; }
- 自
com.google.mlkit:face-detection:16.0.5
和com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.4
起,如果使用非零值的 rotationDegrees 建構 Bitmap,就會導致 FaceDetection API 發生「無效旋轉」的 MlKitException。請使用較舊版本,並等待下次發布的版本,其中包含此問題的修正項目。 在某些搭載 camera-camera2:1.0.0-beta08 以上版本的裝置上,BarcodeScanning SDK 會在
com.google.mlkit:barcode-scanning:16.1.0
和com.google.android.gms:play-services-mlkit-barcode-scanning:16.1.3
之前的版本中無法運作。您可以使用舊版的 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 中使用 ML Kit,可以註冊Activity 範圍的事件監聽器,該事件監聽器會在 Activity 停止時自動移除。如果您在 Fragment 或其他環境中使用 ML Kit,可以提供自訂執行緒,在 Fragment 遭到銷毀時關閉執行作業。如需範例,請參閱 Vision 快速入門中的
ScopedExecutor.Java
。如果圖片標註使用的是點陣圖以外的圖片格式,則套裝組合變數的效能會優於依賴 Google Play 服務的「精簡」變數。
如果您將
targetSdkVersion
設為 31,並在 Android S 上執行,則 Digital Inkcom.google.mlkit:digital-ink-recognition:17.0.0
或更早版本,以及實體擷取com.google.mlkit:entity-extraction:16.0.0-beta2
或更早版本,會發生下列執行階段例外狀況。 這項問題已在較新版本中修正。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 模擬器。