[英]Cordova Plugins not getting picked up after grunt build to .apk
我使用cordova创建了一个混合移动应用程序。
我向项目添加了cordova-contacts和cordova-calendar插件,这些插件已反映在android.json中,并且功能列在platform / android / res / xml / config.xml下。
我使用构建apk
grunt build --platform = android
在反编译中获取android-debug.apk之后,我发现Manifest文件包含所有读取和写入权限,并且插件似乎存在。
但是在混合应用程序的js viewModels中,找不到插件。
错误:未定义
var options = new ContactFindOptions()
遵循的步骤:
在cordova项目中,
cordova插件添加cordova-plugin-contacts
验证更改可以在config和.json文件中看到。
我错过了任何联系步骤吗? 是否必须在Gruntfile.js中提供cordova插件?
更新:Cordova插件版本::
cordova-plugin-calendar:4.5.5,cordova-plugin-contacts:2.2.1
在浏览更多内容时,发现该插件的某些版本指向错误的js文件。 这里是否一样?
您可以通过在应用文件夹中的以下命令触发,从命令行检查是否已安装插件。
cordova plugin ls
这样,您将知道安装了所有插件。
如果您的插件已列出。 然后我认为问题可能是android平台与插件的兼容性。 (Android 6+的权限更新已导致插件不兼容)
您可以尝试通过以下命令删除平台。
cordova platform rm android
然后通过以下命令再次添加
cordova platform add android
注意:删除平台后,您将失去资产(在platform \\ android文件夹中完成的图标和启动屏幕图像以及任何其他与平台相关的修复程序)。 因此,请在删除android平台之前复制这些文件。
通过删除和添加android平台,cordova将重新安装插件,这可能会解决您不兼容的插件问题。
grunt创建的apk打包过程是,在将应用程序安装并部署到设备上后,将cordova.js注入到基本html页面中。
然后在cordova.js中找到getPathPrefixMethod(),该方法将遍历所有脚本标签以找到cordova.js。 此路径前缀也可用于查找cordova_plugins.js。
如果我们添加显式的cordova.js脚本标签,则很可能不会拾取我们的插件。
在使用模拟器和chrome进行调试期间,注意到了问题。
希望这可以帮助。 谢谢 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.