【发布时间】:2014-08-29 18:00:13
【问题描述】:
我正在构建一个带有 Magtek uDynamo 读卡器插件的 Cordova 应用程序。当我恢复时它崩溃了。
如果我从不调用读卡器(或从不暂停/恢复),该应用程序可以正常工作。
我使用了 Zombie Profiler,这是错误消息 - 一条 Objective-C 消息被发送到地址为:0x17522260 的已释放“MTSCRA”对象(僵尸)。
我检查了我是否正在使用 ARC,并将日志记录语句全部放在我的本机插件代码中,以确保 MTSCRA 对象永远不会为 NULL。故障转储没有给出任何回溯,异常断点落在机器码中。
我还是 iOS/Cordova 的新手,所以如果我可以使用任何其他调试工具或者我是否应该发布一些代码来帮助诊断问题,请告诉我。
编辑:添加附加信息以响应下面的 cmets
这是流程- 1.运行读卡器页面 2. 无读卡器打开页面(读卡器已断开连接) 3.暂停,继续 4. 完成没有读卡器的页面工作 5.用读卡器重定向到页面(读卡器应该连接) 6. 崩溃
【问题讨论】:
-
我会试着猜测一下。你提到了
step 5.Redirected to page with card reader。您是自己创建的插件还是第三方插件?页面是两个不同的页面还是它们是单页应用程序。我的意思是重定向页面是一个带有读卡器脚本的单独 HTML 页面。如果是,那么根据我有限的知识,重定向页面中包含的脚本将不起作用。这与 Phonegap 无关,而是与 Web App 相关。你可以做的是创建一个读卡器的模型,比如一个虚拟读卡器来测试应用程序和插件。 -
我怀疑您的读卡器在重新进入时出现问题(例如,进入其页面)。确保该页面上的对象在重新访问之前已被销毁(假设它实例化每个页面加载),或者在继续重新进入之前添加一个检查以查看对象是否已经实例化。
标签: ios objective-c cordova phonegap-plugins