我知道有许多类似的问题(这里,这里或这里),但即使我已按照建议的指示操作,仍然遇到了同样的问题。
尽管我的项目配置看起来是正确的,但 Firebase ML Kit 似乎有问题无法下载设备上的文本识别模型,导致出现以下异常:
com.google.firebase.ml.common.FirebaseMLException: 等待下载文本识别模型。请稍等。
该项目似乎已按照要求进行了配置,在清单中的“DEPENDENCIES”元数据中设置了下载依赖项以在打开应用程序(或从 Play 商店下载)时下载:
<meta-data
android:name="com.google.firebase.ml.vision.DEPENDENCIES"
android:value="ocr" />
除了访问互联网和摄像头的权限:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
:app Gradle中包含了ML Kit Vision的实现方式:
implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
我还尝试了以下方法:1.删除Google Play Services的所有数据:设置->应用->Google Play Services->存储空间->管理空间->清除全部数据。
2.更新Google Play Services,重新启动并打开Google Play Store 15分钟。已安装版本:
20.09.13 (120408-298964066)
。3.检查可用存储空间(有13GB的可用空间)。
4.将相机权限授予应用程序和Google Play Services或者撤销该权限。
尝试使用库的代码在这里(是接口的实现):
@SuppressLint("UnsafeExperimentalUsageError")
override fun analyze(imageProxy: ImageProxy) {
Log.d(LOG_TAG, "Trying to detect something")
val mediaImage = imageProxy.image
val imageRotation = degreesToFirebaseRotation(imageProxy.imageInfo.rotationDegrees)
if (mediaImage != null) {
val firebaseImage = FirebaseVisionImage.fromMediaImage(mediaImage, imageRotation)
val detector = FirebaseVision.getInstance().onDeviceTextRecognizer
val result = detector.processImage(firebaseImage)
.addOnSuccessListener { firebaseVisionText ->
// Task completed successfully
Log.d(LOG_TAG, "Text detected! ${firebaseVisionText.text}")
// Close img for next use
imageProxy.close()
}
.addOnFailureListener { e ->
// Task failed with an exception
Log.e(LOG_TAG, e.toString())
e.printStackTrace()
// Close img for next use
imageProxy.close()
}
}
}
这篇文章是按照官方指南 这里 编写的。
这是全部输出内容:
W/izadi.explorat: Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, linking, allowed)
W/DynamiteModule: Local module descriptor class for com.google.android.gms.vision.dynamite.ocr not found.
I/DynamiteModule: Considering local module com.google.android.gms.vision.dynamite.ocr:0 and remote module com.google.android.gms.vision.dynamite.ocr:0
D/TextNativeHandle: Cannot load feature, fall back to load dynamite module.
W/DynamiteModule: Local module descriptor class for com.google.android.gms.vision.ocr not found.
I/DynamiteModule: Considering local module com.google.android.gms.vision.ocr:0 and remote module com.google.android.gms.vision.ocr:0
E/Vision: Error loading module com.google.android.gms.vision.ocr optional module true: com.google.android.gms.dynamite.DynamiteModule$LoadingException: No acceptable module found. Local version is 0 and remote version is 0.
E/OcrAnalyzer: com.google.firebase.ml.common.FirebaseMLException: Waiting for the text recognition model to be downloaded. Please wait.
W/System.err: com.google.firebase.ml.common.FirebaseMLException: Waiting for the text recognition model to be downloaded. Please wait.
W/System.err: at com.google.android.gms.internal.firebase_ml.zzsc.zzd(com.google.firebase:firebase-ml-vision@@24.0.1:21)
at com.google.android.gms.internal.firebase_ml.zzsc.zza(com.google.firebase:firebase-ml-vision@@24.0.1:39)
at com.google.android.gms.internal.firebase_ml.zzpj.zza(com.google.firebase:firebase-ml-common@@22.0.1:31)
at com.google.android.gms.internal.firebase_ml.zzpl.call(Unknown Source:8)
at com.google.android.gms.internal.firebase_ml.zzpf.zza(com.google.firebase:firebase-ml-common@@22.0.1:32)
at com.google.android.gms.internal.firebase_ml.zzpe.run(Unknown Source:4)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at com.google.android.gms.internal.firebase_ml.zze.dispatchMessage(com.google.firebase:firebase-ml-common@@22.0.1:6)
at android.os.Looper.loop(Looper.java:227)
at android.os.HandlerThread.run(HandlerThread.java:67)
有什么想法吗?
是否有人对我缺少或如何解决它有任何想法? 它在我的设备(小米Mi 8-Android 10)和虚拟设备(Nexus 5X-Android 10 + Play Store)中都会出现。