1

我正在尝试在 Abbyy 公司提供的 OCR 识别上测试 cordova 插件。当我读到它是免费的并且他们不提供支持时,您只能在您的论坛社区中支持自己(已经通过邮件与支持人员交谈)。

好吧,我发帖的原因如下......

我按照这里写的步骤:https ://github.com/abbyysdk/RTR-SDK.Cordova

经过一番艰苦的斗争,我设法在 Android 上运行该应用程序,而在执行 cordova run android 命令时没有启动任何错误。在我的 index.js 文件中,我在 onDeviceReady 方法中添加了以下内容:

var app = {
    // Application Constructor
    initialize: function () {
        document.addEventListener ('deviceready', this.onDeviceReady.bind (this), false);
    },

    // deviceready Event Handler
    //
    // Bind any cordova events here. Common events are:
    // 'pause', 'resume', etc.
    onDeviceReady: function () {
        this.receivedEvent ('deviceready');
        
        AbbyyRtrSdk.startTextCapture (function (c) {
            console.log ('callback:', c);
        }, {
            licenseFileName: 'www / rtr_assets / AbbyyRtrSdk.license'
        });
    },

    // Update DOM on a Received Event
    receivedEvent: function (id) {
        var parentElement = document.getElementById (id);
        var listeningElement = parentElement.querySelector ('. listening');
        var receivedElement = parentElement.querySelector ('. received');

        listeningElement.setAttribute ('style', 'display: none;');
        receivedElement.setAttribute ('style', 'display: block;');

        console.log ('Received Event:' + id);
    }
};

app.initialize ();

到这里为止一切都是正确的。后来不明白为什么console.log('callback:', c)这行的输出返回错误:“Unspecified error while loading the engine. See logcat for details.”。我傻了,因为我不知道从哪里抓这个问题,所以我决定修改文件“cordova-plugin-abbyy-rtr-sdk\src\android\java\com\abbyy\mobile\rtr\cordova\RtrPlugin. java”,就在第 134 行,我将其更改为:onError(e.getMessage()) 以获取插件的真正错误,我发现以下消息:“尝试调用虚拟方法'void com.abbyy.mobile。 rtr.cordova.RtrManager.initWithLicense () '关于空对象引用' 但我不知道如何解决这个问题......如果有人能给我一些指导,我将不胜感激。

我在用着:

  • Java JDK 1.8.0_172
  • 安卓7.0
  • 科尔多瓦 8.0.0
  • 真实物理设备(华为P10)

如果您需要更多规范,请告诉我,我会通知您尝试运行应用程序的环境的每个部分。

4

1 回答 1

0

这是由于cordova-android 7不兼容。报告了该问题并提交了修复 PR 。然而,它还没有被合并。该修复程序经过测试可与 cordova-android 7.0.0 一起使用。

您可以在等待 PR 合并的同时分叉一个版本。

于 2018-08-25T15:37:20.437 回答