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)

Most upvoted comments

@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.

$ ionic info

Ionic:

   Ionic CLI                     : 5.2.4 (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       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : android 8.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 20 other plugins)

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

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 require typescript 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:

  • Remove anything that is obsolete or that you don’t use
  • Update any dependencies to their latest available versions (may require code refactoring in your project)
  • Follow any dependency deprecation notices such as “oldPackage as been renamed to newPackage”, for example, should uninstall oldPackage and replace it by installing newPackage. 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.

npm ERR! peerinvalid The package @ionic-native/core@5.11.0 does not satisfy its siblings’ peerDependencies requirements!

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…

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

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 version 5.0.0 of @ionic-native/core to use these 2 packages. This is a problem because…

@ionic-native/geolocation@5.3.0 wants @ionic-native/core@^5.1.0

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 why EPEERINVALID 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 and status-bar plugins will lift the peer dependency higher to match your other dependencies.