And*_*ann 53 cordova cordova-plugins
我注意到由于以下错误,我们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
Run Code Online (Sandbox Code Playgroud)
在iOS和Android上都发生相同的问题。
经过一番挖掘,我发现cordova 9.0.0是最近发布的。
有几个与此问题相关的更改。
我的第一个想法是,某种程度上我们没有锁定cordova版本,但是我们确实将其锁定到cordova@8.1.2了dockerfile中。我也在本地计算机和Cordova版本上进行了测试8.1.2。所以这不是问题。
在查看了更多日志之后,我注意到了一些类似以下的日志:
cordova-android version check failed ("/app/platforms/android/cordova/version"), continuing anyways.
其中有几个,例如3或4,但是在这种情况发生时构建并没有停止。
然后,我再次运行了较早的提交的构建,并且运行良好,可能是因为缓存了某些层。但是,如果我只更改了一个程序包(我更新了漂亮的程序包以进行尝试),则会导致大多数层被重建,并且构建因上述错误而崩溃。
似乎某种程度上更深层的依赖关系已更新,这导致了问题。
谢谢你的帮助。
Or *_*ban 84
我回到了以前的版本:8.1.2。
npm install -g cordova@8.1.2
现在,它又开始工作了。
Khu*_*ari 14
简单的:
将 requireCordovaModule 替换为 require :
requireCordovaModule("q")到require("q")
Alo*_*mon 11
我可以通过将cordova降级到8.1.1.
npm remove cordova -g && npm install -g cordova@8.1.1
Run Code Online (Sandbox Code Playgroud)
Max*_*Max 10
这个解决方案对我有用- 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
Run Code Online (Sandbox Code Playgroud)
编辑:我最近发现运行:
cordova platform add ios && cordova platform add android
Run Code Online (Sandbox Code Playgroud)
将未安装最新版本,将是很好的人解释为什么这是seperately运行它们的不同,但是这是我的问题。
就是这样,我找到了。它来自对cordova cli @9.0.0 的更新,并附加在现有项目上。
该问题来自cordova-android-support-gradle-release,并在最新版本中修复。
所以无论如何,你需要做的是:
cordova plugin rm cordova-android-support-gradle-release
cordova plugin add cordova-android-support-gradle-release@latest
小智 6
我也遇到了这个。就我而言,我需要删除一个有问题的插件cordova-plugin-camera-preview,该插件"cordova": "*"列为依赖项。这将在安装过程中安装cordova 9.0.0ionic cordova build
更新到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 androidcordova plugin add cordova-plugin-whitelistnpm installcordova build您可以通过以下方式查看应用的简历: cordova info
如果您想查看插件列表,可以使用: cordova plugins ls
希望这会有所帮助,或者至少为某人指明正确的方向:)
正如错误所示,您需要要求 q。转到 npmInstall.js (在项目中搜索 requireCordovaModule 然后您将看到 npmInstall.js )。
然后,添加这些行;
var q = require('q');
var npmModule = require('npm');
Run Code Online (Sandbox Code Playgroud)
并替换:var Q = context.requireCordovaModule('q');为
var Q = context.q;
Run Code Online (Sandbox Code Playgroud)
并替换:var npm = context.requireCordovaModule('npm');为
var npm = context.npmModule;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40538 次 |
| 最近记录: |