Javascript Cordova插件在grunt构建到.apk后未被获取

Javascript Cordova插件在grunt构建到.apk后未被获取,javascript,android,cordova,gruntjs,cordova-plugins,Javascript,Android,Cordova,Gruntjs,Cordova Plugins,我正在使用cordova创建一个混合移动应用程序 我将cordova联系人和cordova日历插件添加到项目中,这些插件将反映在android.json中,并且这些功能将在platforms/android/res/xml/config.xml下列出 我使用 grunt构建——平台=android 在反编译时获得android-debug.apk之后,我发现Manifest文件包含所有读写权限,并且插件似乎存在 但在混合应用程序的js viewModels中,没有找到插件 错误:未定义 var

我正在使用cordova创建一个混合移动应用程序

我将cordova联系人和cordova日历插件添加到项目中,这些插件将反映在android.json中,并且这些功能将在platforms/android/res/xml/config.xml下列出

我使用

grunt构建——平台=android

在反编译时获得android-debug.apk之后,我发现Manifest文件包含所有读写权限,并且插件似乎存在

但在混合应用程序的js viewModels中,没有找到插件

错误:未定义

var options=new ContactFindOptions()

以下步骤:

在科尔多瓦项目中

cordova插件添加cordova插件联系人

已验证在config和.json文件中可以看到更改

是否有我遗漏的链接步骤?cordova插件是否有必要在grunfile.js中提供

更新: Cordova插件版本::

cordova插件日历:4.5.5,cordova插件联系人:2.2.1


在浏览更多内容时,我们发现插件的某些版本指向不正确的js文件。这里的情况也一样吗?

您可以通过在app文件夹中触发下面的命令,从命令行检查是否安装了插件

cordova插件ls

这样你就会知道所有插件都安装了什么

以防你的插件被列出。然后我认为问题可能是android平台与插件的兼容性。(Android 6+的权限更新导致插件不兼容)

您可以通过下面的命令尝试删除平台

cordova平台rm android

然后通过下面的命令再次添加它

cordova平台添加android

注意:一旦删除平台,您将丢失资产(图标和闪屏图像以及在platform\android文件夹中完成的任何其他与平台相关的修复)。所以在删除android平台之前先复制这些文件


通过删除和添加android平台,cordova将重新安装插件,这可能会解决您不兼容的插件问题。

grunt为创建apk所做的打包是这样的,当应用程序安装并部署在设备上时,cordova.js被注入到基本html页面中

然后在cordova.js中找到getPathPrefixMethod(),它通过所有脚本标记递归查找cordova.js。这个路径前缀也用于查找cordova_plugins.js

如果我们添加显式的cordova.js脚本标记,我们的插件很可能不会被使用

在使用emulator和chrome进行调试期间,注意到了这个问题

希望这有帮助。谢谢