ML Kit Vision on-device text recognition not downloading model:等待下载文本识别模型。请稍等
ML Kit Vision on-device text recognition not downloading model: Waiting for the text recognition model to be downloaded. Please wait
我知道有很多类似的问题 (, here or here),但即使我已经按照建议的说明进行操作,我仍然面临同样的问题。
尽管我似乎已正确配置项目,但 Firebase ML Kit 似乎无法下载设备上的文本识别模型,出现以下异常:
com.google.firebase.ml.common.FirebaseMLException: Waiting for the text recognition model to be downloaded. Please wait.
该项目似乎已根据清单中的 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'
我也试过:
- 正在删除 Google Play 服务的所有数据:设置->应用程序->Google Play 服务->存储->管理 Space->清除所有数据。
- 更新 Google Play 服务,重新启动并让 Google Play 商店打开大约 15 分钟。安装的版本:
20.09.13 (120408-298964066)
.
- 低存储检查(13GB 免费)。
- Remove/give 相机对应用程序和 Google Play 服务的权限。
我尝试使用该库的代码在这里(接口 ImageAnalysis.Analyzer
的实现):
@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()
}
}
}
按照官方说明写的here。
这是完整的输出:
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)
有什么想法吗?
有人知道我遗漏了什么或如何解决吗?它发生在我的设备 (Xiaomi Mi 8 - Android 10) 和虚拟设备 (Nexus 5X - Android 10 + Play Store) 中。
尝试添加此依赖项:
// ML Kit dependencies
implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
// Barcode detection model.
implementation 'com.google.firebase:firebase-ml-vision-barcode-model:16.0.2'
implementation 'com.google.firebase:firebase-ml-model-interpreter:22.0.1'
还要检查这个 link :
感谢您的反馈!
您的 google 播放服务版本 20.09.13 不在我们当前支持的可选模块下载列表中。理论上,我们应该支持 19.8.31 之后当前生产的所有版本(这将在新版本发布时更改)。
我会与 mu 同事仔细核实,看看为什么你得到 20.08.13 而它不在服务列表中。
在此期间,您能否再次尝试更新,看看是否可以获取新版本的google播放服务?
谢谢!
最后,在不同的设备上尝试后,我意识到问题似乎与 Google Play 服务在设备中的安装方式有关。
在原始测试设备中,Google Play 服务作为用户应用程序安装,这显然阻止了可选模块的下载。在系统级别安装 Play 服务后,问题就解决了。
TLDR:对于要下载的可选模块,显然 Google Play Services 需要安装在 system 级别。
我知道有很多类似的问题 (
尽管我似乎已正确配置项目,但 Firebase ML Kit 似乎无法下载设备上的文本识别模型,出现以下异常:
com.google.firebase.ml.common.FirebaseMLException: Waiting for the text recognition model to be downloaded. Please wait.
该项目似乎已根据清单中的 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'
我也试过:
- 正在删除 Google Play 服务的所有数据:设置->应用程序->Google Play 服务->存储->管理 Space->清除所有数据。
- 更新 Google Play 服务,重新启动并让 Google Play 商店打开大约 15 分钟。安装的版本:
20.09.13 (120408-298964066)
. - 低存储检查(13GB 免费)。
- Remove/give 相机对应用程序和 Google Play 服务的权限。
我尝试使用该库的代码在这里(接口 ImageAnalysis.Analyzer
的实现):
@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()
}
}
}
按照官方说明写的here。
这是完整的输出:
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)
有什么想法吗?
有人知道我遗漏了什么或如何解决吗?它发生在我的设备 (Xiaomi Mi 8 - Android 10) 和虚拟设备 (Nexus 5X - Android 10 + Play Store) 中。
尝试添加此依赖项:
// ML Kit dependencies
implementation 'com.google.firebase:firebase-ml-vision:24.0.1'
// Barcode detection model.
implementation 'com.google.firebase:firebase-ml-vision-barcode-model:16.0.2'
implementation 'com.google.firebase:firebase-ml-model-interpreter:22.0.1'
还要检查这个 link :
感谢您的反馈!
您的 google 播放服务版本 20.09.13 不在我们当前支持的可选模块下载列表中。理论上,我们应该支持 19.8.31 之后当前生产的所有版本(这将在新版本发布时更改)。 我会与 mu 同事仔细核实,看看为什么你得到 20.08.13 而它不在服务列表中。
在此期间,您能否再次尝试更新,看看是否可以获取新版本的google播放服务?
谢谢!
最后,在不同的设备上尝试后,我意识到问题似乎与 Google Play 服务在设备中的安装方式有关。
在原始测试设备中,Google Play 服务作为用户应用程序安装,这显然阻止了可选模块的下载。在系统级别安装 Play 服务后,问题就解决了。
TLDR:对于要下载的可选模块,显然 Google Play Services 需要安装在 system 级别。