Ionic Cordova app stopped compiling after Google's June 17th Firebase SDK update
Solution 1:
This build failure is due to a major version release of the Google Play Services and Firebase libaries on June 17.
The new library versions have the following requirements:
- Upgrade
com.android.tools.build:gradle
to v3.2.1 or later.- Upgrade
compileSdkVersion
to 28 or later.- Update your app to use Jetpack (AndroidX)
The first two requirements can be resolved by updating to use [email protected]
.
The third requires that your Android project migrates to using AndroidX (Jetpack). AndroidX is the successor to the widely-used Android Support Library. AndroidX now used by the latest versions of Play Services/Firebase libraries and the Support library is used by many existing plugins such as cordova-plugin-firebase. The two libraries cannot live side-by-side in the same Android build - doing so will lead to build failure.
To resolve this issue, add the following two plugins your Cordova project:
- cordova-plugin-androidx to enable AndroidX in the Android project.
- cordova-plugin-androidx-adapter to dynamically patch the source code of any plugins using the Support Library to use the AndroidX equivalents.
For a working example of how to try this out in a test project, see my comment on this Github issue.
Note: if you are using cordova-plugin-firebase and encountering errors, you can instead use my fork of that plugin which is published as cordova-plugin-firebasex
and is fixed to resolve issues caused by the new Firebase SDK:
rm -Rf platforms/android
cordova plugin rm cordova-plugin-firebase
rm -Rf plugins/ node_modules/
npm install
cordova plugin add cordova-plugin-firebasex
cordova platform add android
Solution 2:
1. First Answer
We have created a PR for this https://github.com/wizpanda/cordova-plugin-firebase-lib/pull/13 but that requires upgrade of cordova-android
to 8.0.0
.
A workaround is being done for cordova-android
7.x but meanwhile, a discussion is also ongoing whether to keep support for it or not.
2. Edit - Jun 19, 2019
A new version v3.3.0 is released to fix the issue caused by Google Firebase release which supports cordova-android <= 7.1.4
. https://github.com/wizpanda/cordova-plugin-firebase-lib/pull/14#issuecomment-503499409
cordova plugin remove cordova-plugin-firebase-lib
# Or if you were using original fork
#cordova plugin remove cordova-plugin-firebase
cordova plugin add [email protected]
3. Edit - Jun 20, 2019
A new version v4.0.1 is released to fix the issue caused by Google Firebase release which supports cordova-android >= 8.0.0
. https://github.com/wizpanda/cordova-plugin-firebase-lib/pull/14#issuecomment-503499409
cordova plugin remove cordova-plugin-firebase-lib
# Or if you were using original fork
#cordova plugin remove cordova-plugin-firebase
cordova plugin add cordova-plugin-firebase-lib
Solution 3:
Having in platform/android/project.properties following settings :
cordova.gradle.include.1=cordova-plugin-firebase/app-build.gradle
cordova.system.library.4=com.google.firebase:firebase-core:+
cordova.system.library.5=com.google.firebase:firebase-messaging:+
cordova.system.library.6=com.google.firebase:firebase-config:+
cordova.system.library.7=com.google.firebase:firebase-perf:+
I had the same issue (error: resource android:attr/ttcIndex not found).
[email protected] + cordova-plugin-androidx + cordova-plugin-androidx-adapter worked for me perfectly.
Thanks for this solution.
I am just wondering if it is a good long time bet to use those two plugins. Any opinion ?
Solution 4:
Follow the sequence below for cordova-android <= 7.1.4
cordova platform remove android
cordova plugin remove cordova-plugin-firebase
cordova plugin add [email protected]
cordova platform add android