簡體   English   中英

在Grunt構建到.apk之后,Cordova插件沒有被拾起

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM