我正在尝试在 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)
如果您需要更多规范,请告诉我,我会通知您尝试运行应用程序的环境的每个部分。