安装插件后phonegap应用程序崩溃

Posted

技术标签:

【中文标题】安装插件后phonegap应用程序崩溃【英文标题】:phonegap app crashes after installing plugin 【发布时间】:2014-03-19 14:11:59 【问题描述】:

在我为上一个问题找到修复后:phonegap-cordova-3-4-clean-build-gets-apple-mach-linker-error

所以现在,如果我做一个空白项目

$ cordova create hello com.example.hello HelloWorld
$ cordova platform add ios
$ cordova build ios

现在我需要按照这些说明进行操作 previous question 之后一切正常。

但是现在我要安装一个插件(不管是什么插件)。 现在我选择记录器(org.apache.cordova.console)

$ cordova plugin add org.apache.cordova.console

现在,如果我构建并运行应用程序。它在启动时崩溃。 见:screenshot

我在 xcode 中启用了 Zombie Objects。

即使我安装了以前版本的 phonegap(cordova)。我仍然需要完成所有这些步骤。在我刚刚创建、添加平台、构建和运行之前,它就完成了。

什么都没有了,请帮帮我。真的很烦。

编辑:如果我注释行 console.log('Received Event: ' + id);在 js/index.js 应用程序将启动,但如果我调用 console.log 它会崩溃。

【问题讨论】:

【参考方案1】:

objc_msgSend 使用 arm64 上的插件导致 EXC_BAD_ACCESS

所以我找到了发生这种情况的原因:

我需要在 fie ios/CordovaLib/Classes/CDVCommandQueue.m 中替换

objc_msgSend(obj, normalSelector, command);

((void (*)(id, SEL, id))objc_msgSend)(obj, normalSelector, command);

现在一切都恢复正常了。

source

【讨论】:

【参考方案2】:

我发现了一些东西。如果我为 ios 构建。 js(console-via-logger.js)做错了id screenshot

如果我改变了

cordova.define("org.apache.cordova.console.console", function(require, exports, module)  /*

cordova.define("org.apache.cordova.console", function(require, exports, module)  /*

它有效。

这与我或科尔多瓦有关吗?

科尔多瓦-v:3.4.0-0.1.3 npm -v: 1.4.5

【讨论】:

以上是关于安装插件后phonegap应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap Facebook 插件 - 从 Android 设备中删除应用程序后密钥哈希无效

PhoneGap / iOS LocalNotification 应用程序在点击“查看”时崩溃

Phonegap 应用程序在 Android 上安装但在 iOS 上运行时崩溃

iOS8 phonegap cordova 网络信息应用程序崩溃

如何在phonegap中为ios添加插件?

iOS 版本中不会触发 Phonegap 插件回调