cordova-android: Failed to fetch platform cordova-android@8.0.0
Hi,
Below error shows when I tried to ionic cordova platform add android@8.0.0
Note: I have tried many times.
I have done this:
rm -rf node_modules/ rm -rf platforms/ rm -rf plugins/
Removed package.lock.json and tried npm i But no luck yet. Any clue?
ionic cordova platform add android@8.0.0
cordova.cmd platform add android@8.0.0 Using cordova-fetch for cordova-android@8.0.0 Failed to fetch platform cordova-android@8.0.0 Probably this is either a connection problem, or platform spec is incorrect. Check your connection and platform name/version/URL. Error: cmd: Command failed with exit code 1 Error output: npm ERR! Windows_NT 10.0.17763 npm ERR! argv “C:\Program Files\nodejs\node.exe” “D:\Clients\ionic4\node_modules\npm\bin\npm-cli.js” “install” “cordova-android@8.0.0” “–production” “–save” npm ERR! node v12.4.0 npm ERR! npm v2.15.12 npm ERR! code EPEERINVALID
npm ERR! peerinvalid The package @ionic-native/core@5.11.0 does not satisfy its siblings’ peerDependencies requirements! npm ERR! peerinvalid Peer @ionic-native/android-permissions@5.11.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/document-viewer@5.11.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/file@5.11.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/file-opener@5.11.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/file-transfer@5.11.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/firebase-x@5.11.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/geolocation@5.3.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/http@5.3.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/in-app-browser@5.2.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/launch-navigator@5.11.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/network@5.3.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/screen-orientation@5.4.0 wants @ionic-native/core@^5.1.0 npm ERR! peerinvalid Peer @ionic-native/splash-screen@5.0.0 wants @ionic-native/core@5.0.0 npm ERR! peerinvalid Peer @ionic-native/status-bar@5.0.0 wants @ionic-native/core@5.0.0 npm ERR! peerinvalid Peer @ionic-native/vibration@5.7.0 wants @ionic-native/core@^5.1.0
npm ERR! Please include the following file with any support request: npm ERR! D:\Clients\ionic4\npm-debug.log [ERROR] An error occurred while running subprocess cordova.
cordova.cmd platform add android@8.0.0 exited with exit code 1. Re-running this command with the --verbose flag may provide more information.
Ionic Info
ionic info
Ionic:
Ionic CLI : 5.1.0 (C:\Users\Sampath\AppData\Roaming\npm\node_modules\ionic) Ionic Framework : @ionic/angular 4.4.0 @angular-devkit/build-angular : 0.13.9 @angular-devkit/schematics : 7.2.3 @angular/cli : 7.2.3 @ionic/angular-toolkit : 1.2.0
Cordova:
Cordova CLI : 8.1.2 (cordova-lib@8.1.1) Cordova Platforms : none Cordova Plugins : no whitelisted plugins (0 plugins total)
Utility:
cordova-res : not installed native-run : 0.2.5
System:
NodeJS : v12.4.0 (C:\Program Files\nodejs\node.exe) npm : 2.15.12 OS : Windows 10
config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.mho.lla" version="0.1.7" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>lla</name>
<description>lla App</description>
<author email="hi@ionicframework" href="http://ionicframework.com/">m-hospitality</author>
<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<preference name="ScrollEnabled" value="false" />
<preference name="android-minSdkVersion" value="19" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3000" />
<preference name="Hostname" value="localhost:8100" />
<allow-navigation href="http://localhost:8100/*" />
<platform name="android">
<allow-intent href="market:*" />
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<icon height="57" src="resources/ios/icon/icon.png" width="57" />
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
<icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
<icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
<icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
<icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
<icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
<icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
<icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
<icon height="1024" src="resources/ios/icon/icon-1024.png" width="1024" />
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
<splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
<splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
<splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
<splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
<splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
<splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
</platform>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
<string>We use your location for full functionality of certain app features.</string>
</edit-config>
<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-statusbar" spec="2.4.2" />
<plugin name="cordova-plugin-device" spec="2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />
<plugin name="cordova-plugin-inappbrowser" spec="3.0.0" />
<plugin name="cordova-plugin-ionic-webview" spec="4.0.1" />
<plugin name="cordova-plugin-wkwebview-ionic-xhr" spec="^2.1.1" />
<plugin name="cordova-plugin-network-information" spec="2.0.1" />
<plugin name="cordova-plugin-advanced-http" spec="2.0.7" />
<plugin name="cordova-plugin-geolocation" spec="4.0.1" />
<plugin name="cordova-sqlite-storage" spec="3.2.0" />
<plugin name="cordova-plugin-screen-orientation" spec="3.0.1" />
<plugin name="cordova-plugin-firebasex" spec="latest" />
<plugin name="cordova-plugin-androidx" spec="1.0.2" />
<plugin name="cordova-plugin-androidx-adapter" spec="1.1.0" />
<engine name="browser" spec="5.0.4" />
<engine name="ios" spec="~5.0.1" />
<engine name="android" spec="~8.0.0" />
</widget>
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 15 (7 by maintainers)
@breautek Thanks a lot for your great explanation. I’ll bookmark this. I have learned a lot from you. But my issue was something else. i.e. dev envirnment issue. I didn’t use the latest Ionic CLI and Cordova CLI. After I updated those then no issues and I was able to build the APK using first
package.json
file where I posted on the original post.Not sure… it could be that you also have some of these packages installed globally, such as
typescript
. I have had a completely did set of peer conflicts but I still decided to work through it,I into problems where some dependencies requires
typescript
>= 3.4 and other dependencies requiretypescript
max 3.3.There is one thing that is obvious though, this project has a huge mixture of dependencies that doesn’t appear to be compatible together.
I would advise that you go through all your dependencies and:
oldPackage
and replace it by installingnewPackage
. Note some of these deprecation notices may be coming from sub-dependencies. In these cases, the sub-dependency needs to correct the issue.Once everything is up to date, if you’re still having peer conflicts, you can then determine which packages are falling behind on their maintenance and raise issues with those package maintainers, or look for alternatives.
Somewhat unrelated but note that it is important to keep packages up to date as much as possible to fix vulnerabilities, currently this project has several packages that are vulnerable to some high risk attacks including Arbitrary File Overwrites. (You can view vulnerable packages via
npm audit
). Most of the vulnerable packages are likely sub-dependencies of your dependencies.This isn’t a
cordova-android
issue.EPEERINVALID
error means you have incompatible or conflicted peer dependency demands.This states the the
@ionic-native/core@5.11.0
is the conflicted peer dependency. You have@ionic-native/core@5.11.0
installed.But…
You have 2 packages,
@ionic-native/splash-screen
&@ionic-native/status-bar
demands specifically@ionic-native/core@5.0.0
. This means that you need specifically version5.0.0
of@ionic-native/core
to use these 2 packages. This is a problem because…You also have a several other dependencies such as
@ionic-native/geolocation
that demand a different version. This is why there is a conflict and whyEPEERINVALID
is raised.Hope this helps you understand the problem. To fix this issue you have to find a group of ionic dependencies that share the same peer dependency demands. Perhaps updating ionic’s
splash-screen
andstatus-bar
plugins will lift the peer dependency higher to match your other dependencies.