PhoneGap 3 плагин: exec() вызов неизвестного плагина "..."
Я пытаюсь обновить плагин до версии v3, и мне удалось преодолеть проблемы с загрузкой плагина, и мне удалось открыть плагин для клиентской среды (внося изменения в то, как работает exec, и т.д.).
Но когда я смотрю лог-код adb с
adb logcat | grep -v nativeGetEnabledTags | grep -i web
Я получаю эту ошибку:
D/PluginManager(11189): exec() call to unknown plugin: WebSocket
Я не могу понять, что пошло не так, и я не уверен, почему сборка Android не может видеть плагин.
Я переместил ВСЕ код в репозиторий github, поэтому, если кто-то сможет реплицировать и помочь, я буду очень рад! Я также пытаюсь написать свой опыт преобразования и регистрации gotchas, когда я ударил их (некоторые из них в readme, хотя и неполные):
Здесь репо: https://github.com/remy/phonegap_test
- Реми
Ответы
Ответ 1
определите свой плагин в файле "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() вызов неизвестного плагина: MyPluginName
Ответ 2
Я внезапно получаю ту же самую проблему с моей телефонной зазором (2.6). Тот же самый точный код работал раньше, поэтому он должен быть проблемой сборки.
Вы пытались открыть свой apk и посмотреть, включен ли config.xml(там, где установлены плагины).
Ответ 3
Чтобы добавить определение плагина в android в ProjectFolder/platform/android/res/xml/config.xml, обновите ProjectFolder/plugins/android.json
Команда "cordova build" будет читать этот файл android.json и автоматически обновлять ProjectFolder/platform/android/res/xml/config.xml всеми упомянутыми здесь плагинами.
Ответ 4
Вы получаете успешное событие deviceready? Я получил эту ошибку в прошлом, когда мое приложение молча проваливалось по другим причинам в моем коде, заставляя мое событие deviceready никогда не срабатывать. В моем случае тихая ошибка была вызвана некоторыми синтаксическими ошибками javascript в моих блоках кода app.initialize().
Ответ 5
В Android Studio 1.0.1 (работает на Mac OS 10.9.5) + Cordova 4.2.0 я исправил аналогичную проблему (вызов exec() для неизвестного плагина ") следующим образом:
получилось, что содержимое тега:
<feature name="MyPluginName">
<param name="android-package" value="com.phonegap.plugins.plugin.class" />
</feature>
В YourCordovaProjectName/config.xml не было дублировано в YourCordovaProjectName/platform/android/res/xml/config.xml
Мне пришлось изменить файл config.xml под YourCordovaProjectName/platform/android/res/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/platform/ios/YourCordovaProjectName
Надеемся, что это будет исправлено в будущем, а содержимое YourCordovaProjectName/config.xml будет правильно отражено в файлах config.xml, которые находятся под каждой конкретной платформой (он работал правильно для Android несколько месяцев назад).