2013-07-31 16 views
19

我一直在嘗試將插件升級到v3,並且我設法通過了插件加載問題,並且設法將插件暴露給客戶端環境(更改exec的工作方式等)。PhoneGap 3插件:exec()調用未知插件「...」

但是,當我看與

adb logcat | grep -v nativeGetEnabledTags | grep -i web

的亞行logcat我得到這個錯誤:

D/PluginManager(11189): exec() call to unknown plugin: WebSocket

我不能工作了什麼出了錯,我不確定爲什麼Android版本無法看到插件。

我已經將所有的代碼都推送到github回購,所以如果有人能夠複製和幫助,我會非常歡迎!我也試着寫了我轉換的經驗和記錄的陷阱,因爲我打他們(有一些自述,雖然它是不完整):

這裏的回購:https://github.com/remy/phonegap_test

- 雷米

回答

26

定義你的插件中的 「RES/XML/config.xml中」

找到該文件

<feature name="App"> 
     <param name="android-package" value="org.apache.cordova.App" /> 
</feature> 

在這些線路和追加這些權後:

<feature name="MyPluginName"> 
     <param name="android-package" value="com.phonegap.plugins.plugin.class" /> 
</feature> 

更換假名稱(MyPluginName,plugins.plugin.class等)與實際名稱。這個工作對我來說,當我得到這個錯誤:

exec() call to unknown plugin : MyPluginName

+2

'feature'中的''屬性與'param'中的'value'屬性相同,因此,'' – AimanB

+0

謝謝,我的問題解決了! –

+0

Thaks,爲我工作!但每次運行'cordova prepare android'時,它都會從res/xml/config.xml中刪除MyPlugin的條目,並且我需要在運行該項目之前手動更新它。你會知道如何解決這個問題嗎? – alberjoe

0

您是否獲得了成功的設備準備事件?在過去,當我的應用程序在我的代碼中因爲其他原因而導致我的deviceready事件永遠不會觸發時,我的應用程序默默無法正常工作。在我的情況下,無聲的錯誤是由於我的app.initialize()代碼塊中的一些javascript語法錯誤。

2

我突然遇到了與我的手機差距構建(2.6)相同的問題。相同的確切代碼工作之前,所以它必須是一個生成問題。

您是否試圖打開您的apk並查看是否包含config.xml(這裏是定義插件的地方)。

+1

謝謝,即使我的問題與這個錯誤無關,這個答案對我有幫助 – Srinivas

0

在Android 1.0.1工作室+科爾多瓦4.2.0(在Mac OS 10.9.5上運行),我定了類似的問題(「EXEC()調用未知插件「)如下:

碰巧的是,標籤的內容:

<feature name="MyPluginName"> 
<param name="android-package" value="com.phonegap.plugins.plugin.class" /> 
</feature> 

YourCordovaProjectName/config.xml中YourCordovaProjectName /平臺沒有複製/安卓/ RES/XML /config.xml

我不得不改變文件配置。下YourCordovaProjectName /平臺/安卓/ RES/XML/和xml添加標籤:

<feature name="MyPluginName"> 
    <param name="android-package" value="com.phonegap.plugins.plugin.class" /> 
    </feature> 

然後它的工作。

我也補充一點,我已經經歷了IOS同樣的問題,我不得不手動輸入:

<feature name="MyPluginName"> 
<param name="ios-package" value="com.phonegap.plugins.plugin.class" /> 
</feature> 

在config.xml文件的文件夾下YourCordovaProjectName /平臺/ IOS/YourCordovaProjectName

希望這將在未來修復和的內容YourCordovaProjectName/config.xml將正確地反映在每個特定平臺下的config.xml文件中(它曾用於Android的正確工作幾個月前幾天)。

1

對於ProjectFolder下添加插件定義在android系統/平臺/安卓/ RES/XML/config.xml中,更新ProjectFolder /插件/ android.json

「科爾多瓦打造」命令將讀取該文件android.json並使用這裏提到的所有插件自動更新ProjectFolder/platforms/android/res/xml/config.xml