Android: Deviceready не срабатывает через 5 секунд
После обновления Кордовы до версии v6.4.0 и платформы Android до 6.0.0 мое приложение больше не работает. Я получаю это:
deviceready has not fired after 5 seconds. cordova.js:1223
Channel not fired: onCordovaInfoReady cordova.js:1216
Channel not fired: onCordovaConnectionReady cordova.js:1216
Я попытался удалить все плагины и добавить их один за другим. Я обнаружил, что это проблема с устройством cordova-plugin-device и cordova-plugin-network-information. Все мои плагины обновлены
Ответы
Ответ 1
Если вы используете плагин Crosswalk в своем приложении, я просто подтвердил, что его удаление и переустановка через;
cordova plugin add https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview
Получает освобождение от
deviceready has not fired after 5 seconds. cordova.js:1223
Channel not fired: onCordovaInfoReady cordova.js:1216
Channel not fired: onCordovaConnectionReady cordova.js:1216
Вы можете увидеть эту проблему в списке Crosswalk Jira.
https://crosswalk-project.org/jira/browse/XWALK-7422
Ответ 2
Это должно быть исправлено в кордово-андроиде 6.1.0. Он еще не добавлен в npm-реестр, поэтому вы можете использовать его, поместив его в свой файл config.xml:
<engine name="android" spec="https://github.com/apache/cordova-android.git#6.1.0"/>
Ответ 3
Недавно я столкнулся с этой же проблемой в iOS. В конечном счете то, что сработало для меня, было простой remove
и add
платформы ios
:
cordova platform remove ios
cordova platform add ios
Прошло немало времени, так как я полностью перестроил платформу ios
, и, как и вы, я сделал другие важные изменения за это время (обновление Cordova, обновление XCode и т.д.). Моя теория заключается в том, что моя конструкция config.xml
или существующий ios
была как-то несовместима с последними требованиями Кордовы. Выполнение platform remove
и platform add
очистит файлы сборки и обновит config.xml
.
Я сомневаюсь, что это относится к OP, но для других, кто столкнулся с этой же проблемой, убедитесь, что вы включили cordova.js
в свой файл index.html
. Если вы этого не сделали, добавьте эту строку:
<script src="cordova.js"></script>
Это очень распространенное упущение, когда только начинаешь с Кордовы.