In your platforms/android/build.gradle file you need to move the 2 instances of jcenter() to below the maven entries. It looks for the play-services-basement.aar file in jcenter first, doesn't find it, so just fails. Moving jcenter to below maven fixes this (examples below)
Before
buildscript { repositories { jcenter() maven { url "https://maven.google.com" } } dependencies { // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath 'com.android.tools.build:gradle:3.0.0' } } allprojects { repositories { jcenter() maven { url "https://maven.google.com" } } //This replaces project.properties w.r.t. build settings project.ext { defaultBuildToolsVersion="25.0.2" //String defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4 defaultTargetSdkVersion=26 //Integer - We ALWAYS target the latest by default defaultCompileSdkVersion=26 //Integer - We ALWAYS compile with the latest by default } }
After
buildscript { repositories { maven { url "https://maven.google.com" } jcenter() } dependencies { // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files classpath 'com.android.tools.build:gradle:3.0.0' } } allprojects { repositories { maven { url "https://maven.google.com" } jcenter() } //This replaces project.properties w.r.t. build settings project.ext { defaultBuildToolsVersion="25.0.2" //String defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4 defaultTargetSdkVersion=26 //Integer - We ALWAYS target the latest by default defaultCompileSdkVersion=26 //Integer - We ALWAYS compile with the latest by default } }
In project.properties (in the same folder) change every instance of com.android.support:support-v4: and com.android.support:support-v13: to be 27.1.0.
cordova-android-support-gradle-release should take care of this in theory, but doesn't seem to. mine ended up looking like:
target=android-27 android.library.reference.1=CordovaLib android.library.reference.2=app cordova.system.library.1=com.android.support:support-v4:27.1.0 cordova.gradle.include.1=phonegap-plugin-push/moodlemobile-push.gradle cordova.system.library.2=com.android.support:support-v13:27.1.0 cordova.system.library.3=com.google.android.gms:play-services-gcm:15+ cordova.system.library.4=me.leolin:ShortcutBadger:1.1.14@aar cordova.system.library.5=com.android.support:support-v4:27.1.0 cordova.system.library.6=com.android.support:support-v4:27.1.0 cordova.system.library.7=com.android.support:support-v4:27.1.0 cordova.gradle.include.2=cordova-plugin-badge/moodlemobile-badge.gradle cordova.gradle.include.3=cordova-android-support-gradle-release/moodlemobile-cordova-android-support-gradle-release.gradle
This is because version 28 introduced some breaking changes, and every time there is a + after a version number in that file it'll grab the latest version.
I also changed my target version in config.xml (in project root) to 27, but I don't think that is related to this error.