Ответ 1
Я столкнулся с этим также. В моем случае мне нужно было удалить проблемный плагин cordova-plugin-camera-preview
котором в качестве зависимости указано "cordova": "*"
. Это позволит установить Cordova 9.0.0 во ionic cordova build
Я заметил, что сборки нашего CI начали давать сбой из-за следующей ошибки:
Discovered plugin "cordova-plugin-app-version" in config.xml. Adding it to the project
Installing "cordova-plugin-app-version" for android
Adding cordova-plugin-app-version to package.json
Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.
[ERROR] Exception:
The command '/bin/sh -c ionic cordova platforms add android' returned a non-zero code: 1
Та же проблема возникает как на iOS, так и на Android.
После некоторых копаний я обнаружил, что недавно была выпущена Cordova 9.0.0.
Есть несколько изменений, связанных с этой проблемой.
Моей первой мыслью было, что почему-то у нас не было заблокированной версии Cordova, но мы заблокировали ее по [email protected]
в нашем файле Docker. Я также проверил это на моей локальной машине, и я Cordova версии 8.1.2
а также. Так что это не может быть проблемой.
Посмотрев еще несколько журналов, я заметил несколько таких журналов:
cordova-android version check failed ("/app/platforms/android/cordova/version"), continuing anyways.
Было несколько таких, как 3 или 4, но сборка не остановилась, когда это произошло.
Затем я снова запустил сборку старого коммита, и он работал нормально, возможно потому, что некоторые слои были кэшированы. Но если я изменил только один пакет (я обновил более красивый, чтобы попробовать его), это привело к перестроению большинства слоев, и сборка завершилась с ошибкой, описанной выше.
Кажется, что каким-то образом обновились некоторые зависимости, которые вызывают проблему.
Спасибо за вашу помощь.
Я столкнулся с этим также. В моем случае мне нужно было удалить проблемный плагин cordova-plugin-camera-preview
котором в качестве зависимости указано "cordova": "*"
. Это позволит установить Cordova 9.0.0 во ionic cordova build
Я вернулся к предыдущей версии: 8.1.2.
npm install -g [email protected]
Теперь это снова работает.
Кажется, проблема с cordova 9.0.0, см. этот запрос на выпуск.
Похоже, что это уже исправлено и будет включено в следующую (9.0.1?) Версию.
Я также получаю эту ошибку после обновления до 9.0.0. В моем случае я исправил это, выполняя очистку и перестраивая мое приложение. Вы можете попробовать следующие шаги.
npm install -g cordova
./android/tools/bin/sdkmanager "build-tools;28.0.3" "platforms;android-28"
export ANDROID_SDK_ROOT=~/android
(1) ANDROID_HOME устарел, но все еще работает
cordova platform add android
cordova plugin add cordova-plugin-whitelist
cordova build
Вы можете проверить резюме вашего приложения с помощью: cordova info
Если вы хотите увидеть список ваших плагинов, вы можете использовать: cordova plugins ls
Надеюсь, что это поможет или, по крайней мере, указать кому-то в правильном направлении :)
Это решение работало для меня - https://github.com/xpbrew/cordova-sqlite-storage/issues/856#issuecomment-497298630
Для любого плагина, с которым связана эта ошибка, запустите:
cordova platform rm ios
cordova platform rm android
cordova plugin rm <package-name>
npm i <package-name>@latest
cordova plugin add <package-name>
cordova platform add ios
cordova platform add android
Вот что сработало для меня: Я удалил Кордову, позвонив
npm uninstall cordova -g
а затем снова установил его глобально с помощью
npm install -g [email protected]
Просто:
Замените requireCordovaModule, чтобы требовать:
requireCordovaModule ("q") от до require ("q")
удалить cordova-plugin-crosswalk-webview