15

我正在尝试在我的应用程序中实现 Google Mobile Vision TextRecogniser API,以读取给定图像的文本。当我尝试使用该功能时,我收到此错误:

W/DynamiteModule: Local module descriptor class for com.google.android.gms.vision.dynamite not found.
I/DynamiteModule: Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:801
I/DynamiteModule: Selected remote version of com.google.android.gms.vision.dynamite, version >= 801
W/System: ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a
D/ApplicationLoaders: ignored Vulkan layer search path /data/app/com.google.android.gms-1/lib/arm64:/system/fake-libs64:/data/app/com.google.android.gms-1/base.apk!/lib/arm64-v8a for namespace 0x7a2e8c60f0
I/Vision: Loading libocr library
I/Vision: libocr load status: false
I/TextRecognizerCreatorImpl: Requesting download for native text recognizer
W/TextNativeHandle: Native handle not yet available. Reverting to no-op handle.

我相信这意味着图书馆没有下载到手机上。

我已经对常见的错误源进行了故障排除,包括缺少 Internet 连接、内存不足、缺少依赖项、重新启动手机、更新 Google Play 服务、等待一段时间等。Google 存储库和 Play 服务也在 Android Studio 中更新。

然而,即使在不同的设备上尝试我的应用程序,我仍然会遇到同样的错误。

4

6 回答 6

7

我相信下载是由 Google Play Service App 执行的。库以 zip 文件的形式下载到文件夹中

/data/data/com.google.android.gms/cache/downloadservice

并被提取到

 /data/data/com.google.android.gms/files/com.google.android.gms.vision

我们的应用程序总是检查路径中的库

    06-02 22:43:53.379 30258-30419/pzy64.searchbot I/Vision: Loading library libocr.so

如果文件不存在,则显示错误

    06-02 22:43:53.475 30258-30419/pzy64.searchbot I/Vision: libocr.so library load status: false   

否则

    06-03 09:42:33.372 23451-24679/pzy64.searchbot I/Vision: libocr.so library load status: true

下载后,在我的情况下(ARM)的文件夹大小

 /data/data/com.google.android.gms/files/com.google.android.gms.vision

大约 5MB。(所以下载的文件小于这个大小,不同的架构大小可能会有所不同。在我的华硕手机(x86)中下载需要更多时间)。

请参阅我的 Logcat -(使用“Vision”过滤)。

06-02 22:45:45.489 14970-31705/? I/Vision: Registration status ocr_armeabi_v7a.zip: The download is in progress.
06-02 22:45:45.542 14970-31705/? I/Vision: Download status ocr_armeabi_v7a.zip: The download is in progress.
06-02 22:43:53.379 30258-30419/pzy64.searchbot I/Vision: Loading library libocr.so
06-02 22:43:53.387 30258-30419/pzy64.searchbot I/Vision: libocr.so library load status: false
06-02 22:43:53.410 30258-30419/pzy64.searchbot I/Vision: Loading library libocr.so
06-02 22:43:53.411 30258-30419/pzy64.searchbot I/Vision: libocr.so library load status: false
06-02 22:43:53.475 30258-30419/pzy64.searchbot I/Vision: Loading library libocr.so
06-02 22:43:53.475 30258-30419/pzy64.searchbot I/Vision: libocr.so library load status: false
................... ..............
................... ..............

06-02 22:51:08.364 14970-3424/? I/Vision: Finished download ocr_armeabi_v7a.zip
06-02 22:51:08.421 14970-3424/? I/Vision: Unzipping /data/data/com.google.android.gms/cache/downloadservice/ocr_armeabi_v7a.zip to /data/data/com.google.android.gms/files/com.google.android.gms.vision/ocr
06-02 22:51:08.645 14970-3424/? I/Vision: Time to download ocr: 436558
06-02 22:51:09.142 3303-3489/pzy64.searchbot I/Vision: Loading library libocr.so
06-02 22:51:09.149 3303-3489/pzy64.searchbot I/Vision: libocr.so library load status: true
06-02 22:51:09.149 3303-3489/pzy64.searchbot I/Vision: Reading ocr models from /data/data/com.google.android.gms/files/com.google.android.gms.vision/ocr/data/models

我正在开发的应用程序

于 2017-06-02T17:29:22.993 回答
5

我对 Google Play 服务应用程序执行“清除数据”,它可以工作!

于 2017-07-10T02:31:49.963 回答
3

我认为您错过了在应用程序的清单文件中添加“元数据”标签。此元数据标记告诉您的应用程序下载该库并将其集成到您的应用程序中。尝试在清单文件中“活动”标签上方的“应用程序”标签中添加元数据标签。见下文:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
        <meta-data android:name="com.google.android.gms.vision.DEPENDENCIES" android:value="barcode"/>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

这可能会解决您的问题。

于 2017-03-14T12:35:36.880 回答
3

我不知道我是否为时已晚,但是伙计们,经过数小时的挑战,问题已通过将Google Play Services 更新到版本 (12.6.85)解决了。我重新启动了设备,你猜怎么着?该应用程序运行良好。有关更新此 Google Play 服务的这些说明

于 2018-06-20T15:25:43.293 回答
1

经过一些试验,我发现在 gradle 文件中你也必须添加这些行:

compile 'com.android.support:support-v4:24+'
compile 'com.android.support:design:24+'

所以除了这个

compile'com.google.android.gms:play-services-vision:10.2.1' 其他两行也很重要。

于 2017-04-21T18:23:46.527 回答
0

我有同样的问题。一旦我登录到 Google Play 服务,它就会下载并且条形码检测器在相机中工作。

于 2020-07-16T17:47:57.840 回答