可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have a problem on an ionic project that it started happening yesterday without modifying any dependency.
When I run ionic cordova run android
I have this error:
The library com.google.android.gms:play-services-measurement-base is being requested by various other libraries at [[16.5.0,16.5.0], [16.4.0,16.4.0]], but resolves to 16.5.0. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.
But I didn't installed any dependency in these days.
This is my cordova plugins
list:
cordova-fabric-plugin 1.1.14-dev "cordova-fabric-plugin"
cordova-plugin-advanced-http 2.0.9 "Advanced HTTP plugin"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-appminimize 1.0.1 "AppMinimize"
cordova-plugin-apprate 1.4.0 "AppRate"
cordova-plugin-appsee 2.6.0 "Appsee"
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-datepicker 0.9.3 "DatePicker"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-dialogs 2.0.1 "Notification"
cordova-plugin-facebook4 3.2.0 "Facebook Connect"
cordova-plugin-file 6.0.1 "File"
cordova-plugin-firebase 2.0.5 "Google Firebase Plugin"
cordova-plugin-freshchat 1.2.0 "Freshchat plugin for Phonegap"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-globalization 1.11.0 "Globalization"
cordova-plugin-inappbrowser 3.0.0 "InAppBrowser"
cordova-plugin-inapppurchase-fixed 1.1.0 "In App Purchase"
cordova-plugin-insomnia 4.3.0 "Insomnia (prevent screen sleep)"
cordova-plugin-local-notification 0.9.0-beta.2 "LocalNotification"
cordova-plugin-media 5.0.2 "Media"
cordova-plugin-nativegeocoder 3.2.2 "NativeGeocoder"
cordova-plugin-nativestorage 2.3.2 "NativeStorage"
cordova-plugin-network-information 2.0.1 "Network Information"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-plugin-x-socialsharing 5.4.4 "SocialSharing"
cordova-support-google-services 1.2.1 "cordova-support-google-services"
es6-promise-plugin 4.2.2 "Promise"
ionic-plugin-deeplinks 1.0.19 "Ionic Deeplink Plugin"
nl.kingsquare.cordova.background-audio 1.0.1 "background-audio"
pushwoosh-cordova-plugin 7.13.0 "Pushwoosh"
I found these dependencies in my platforms/android/app/build.gradle
(if it's good to know):
dependencies {
implementation fileTree(dir: 'libs', include: '*.jar')
// SUB-PROJECT DEPENDENCIES START
implementation(project(path: ":CordovaLib"))
compile "com.android.support:support-v4:24.1.1+"
compile "com.squareup.okhttp3:okhttp-urlconnection:3.10.0"
compile "com.google.android.gms:play-services-tagmanager:+"
compile "com.google.firebase:firebase-core:+"
compile "com.google.firebase:firebase-messaging:+"
compile "com.google.firebase:firebase-config:+"
compile "com.google.firebase:firebase-perf:+"
compile "com.android.support:support-v4:26.+"
compile "com.android.support:support-v4:27.+"
compile "com.android.support:appcompat-v7:27.+"
compile "com.android.support:recyclerview-v7:27.+"
compile "com.android.support:design:27.+"
compile "com.android.support.constraint:constraint-layout:1.0.2"
compile "com.github.bumptech.glide:glide:4.7.1"
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.60"
compile "com.pushwoosh:pushwoosh:5.13.0"
compile "com.pushwoosh:pushwoosh-amazon:5.13.0"
compile "com.pushwoosh:pushwoosh-badge:5.13.0"
compile "com.pushwoosh:pushwoosh-inbox:5.13.0"
compile "com.pushwoosh:pushwoosh-inbox-ui:5.13.0"
compile "com.facebook.android:facebook-android-sdk:4.38.1"
compile "com.appsee:appsee-android:2.6.0"
// SUB-PROJECT DEPENDENCIES END
}
I don't know where to search. I found a workaround that is disabling version check of GoogleServicesPlugin in the platforms/android/build.gradle
making: com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
but it doesn't work for me.
Thanks in advance.
EDIT: It seems like i'm not the only one. Here.
回答1:
No solutions posted here worked for me. A wonderful person opened a pull request in the cordova-firebase-plugin
official repo and it works.
Steps I did:
1 - Remove cordova-firebase-plugin with ionic cordova plugin remove cordova-plugin-firebase
2 - Install: ionic cordova plugin add cordova-plugin-firebasex
3 - rm -rf node_modules/ plugins/ platforms/android package-lock.json
4 - ionic cordova platform add android && npm install
And now it's working.
回答2:
I found a solution for me in the forum mentioned in Yannic Hamann answer (Ionic Forum).
The comment from systems_qualigy here is about locking the versions in project.properties.
cordova.system.library.4=com.google.firebase:firebase-core:16.0.8
cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0
cordova.system.library.6=com.google.firebase:firebase-config:16.4.1
cordova.system.library.7=com.google.firebase:firebase-perf:16.2.4
I need also to lock the version of
com.google.android.gms:play-services-tagmanager:16.0.8
I took the version from Martins answer and could succesfully rebuild my project.
回答3:
We are now maintaining a forked version which includes all the changes & fixes done by different authors (who have saved everyone from this Google's move).
https://github.com/wizpanda/cordova-plugin-firebase-lib#difference-from-the-fork-repository
So, now just remove the existing plugin with:
ionic cordova plugin remove cordova-plugin-firebase
And now, install new version with
ionic cordova plugin add cordova-plugin-firebase-lib --save
Cheers!
回答4:
The Problem was due to the recent updates in firebase where some methods are now deprecated, check out Android Firebase releases. To fix the problem use the following patch of cordova plugin :
cordova plugin add https://github.com/dpa99c/cordova-plugin-firebase#GH-1057-April-05-android-build-issue
回答5:
do as it says and run ./gradlew :app:dependencies
in the Andoird project directory.
support-v4
is even added three times:
compile "com.android.support:support-v4:24.1.1+"
compile "com.android.support:support-v4:26.+"
compile "com.android.support:support-v4:27.+"
alike this the Gradle project synchronizes:
implementation project(":CordovaLib")
implementation "com.google.android.gms:play-services-tagmanager:16.0.8"
implementation "com.google.firebase:firebase-messaging:18.0.0"
implementation "com.google.firebase:firebase-config:17.0.0"
implementation "com.google.firebase:firebase-perf:17.0.0"
implementation "com.google.firebase:firebase-core:16.0.9"
implementation "com.android.support:design:28.0.0"
implementation "com.android.support:support-v4:28.0.0"
implementation "com.android.support:customtabs:28.0.0"
implementation "com.android.support:appcompat-v7:28.0.0"
implementation "com.android.support:recyclerview-v7:28.0.0"
implementation "com.android.support:animated-vector-drawable:28.0.0"
implementation "com.android.support.constraint:constraint-layout:1.1.3"
implementation "com.facebook.android:facebook-android-sdk:4.42.0"
implementation "com.squareup.okhttp3:okhttp-urlconnection:3.10.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.60"
implementation "com.github.bumptech.glide:glide:4.9.0"
implementation "com.appsee:appsee-android:2.6.0"
implementation "com.pushwoosh:pushwoosh:5.13.0"
implementation "com.pushwoosh:pushwoosh-amazon:5.13.0"
implementation "com.pushwoosh:pushwoosh-badge:5.13.0"
implementation "com.pushwoosh:pushwoosh-inbox:5.13.0"
implementation "com.pushwoosh:pushwoosh-inbox-ui:5.13.0"
回答6:
I am having exactly the same issue. The problem is caused by cordova-plugin-firebase
. I am currently investigating. Will update this answer when I found the exact course.
For now you can try to ionic cordova plugin rm <plugin>
to see whether this resolves your current error too.
Update:
Have a look here for possible fixes. This open PR seems to work. Hopefully it will be merged very soon.
回答7:
I just added below in project.properties which is under android platform dir and it got worked
cordova.system.library.4=com.google.firebase:firebase-core:16.0.8
cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0
cordova.system.library.6=com.google.firebase:firebase-config:16.4.1
cordova.system.library.7=com.google.firebase:firebase-perf:16.2.4
回答8:
Ionic 4 : 20-05-2019
This works for me:
platforms/android/project.properties
target=android-27
android.library.reference.1=CordovaLib
android.library.reference.2=app
cordova.system.library.1=com.squareup.okhttp3:okhttp-urlconnection:3.10.0
cordova.gradle.include.1=cordova-plugin-firebase/com1-build.gradle
cordova.system.library.2=com.google.android.gms:play-services-tagmanager:16.0.8
cordova.system.library.3=com.google.firebase:firebase-core:16.0.8
cordova.system.library.4=com.google.firebase:firebase-messaging:17.5.0
cordova.system.library.5=com.google.firebase:firebase-config:16.4.1
cordova.system.library.6=com.google.firebase:firebase-perf:16.2.4
cordova.system.library.7=com.android.support:support-annotations:27.+
回答9:
I was facing the same error, I just deleted platforms/android and installed again (ionic cordova prepare android) then everything went back as it was.
回答10:
First, try to remove firebase using
ionic cordova plugin rm cordova-plugin-firebase
and install it again.
回答11:
Follow my perfect solution for the cordova firebase issue.
- ionic cordova platform rm android
- npm uninstall -g cordova
- npm install -g cordova@9.0.0
- ionic cordova platform add android (e.g v8.0.0)
- ionic cordova plugin add cordova-plugin-firebasex (e.g v6.0.7)
- ionic cordova run android
New cordova-plugin-firebasex plugin will fix all the issues related to firebase and it is really good alternative for cordova-plugin-firebase.