Подтвердить что ты не робот

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

- Реми

4b9b3361

Ответ 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 несколько месяцев назад).