我正在使用Angular和Firebase构建一个离子应用程序。
当我尝试通过执行cordova build android
进行构建时,出现错误消息:
* What went wrong:
The library com.google.android.gms:play-services-basement is being requested by various other libraries at [[11.0.1,11.0.1], [15.0.1,15.0.1]], but resolves to 15.0.1. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.
所以我猜我的build.gradle
中有些东西已经过时了,它具有这样的依赖性(在platforms\android\app\build.gradle
中:
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.google.gms:google-services:+"
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-crash:+"
compile "com.google.firebase:firebase-config:+"
compile "com.google.firebase:firebase-perf:+"
compile "com.google.android.gms:play-services-analytics:11.0.1"
compile "com.google.android.gms:play-services-location:15.+"
// SUB-PROJECT DEPENDENCIES END
}
错误中的最后一句话说我应该运行./gradlew :app:dependencies
,但是当我在主项目目录中执行此操作时,会得到erorr:
bash: ./gradlew: No such file or directory
,但是,执行gradle -v
会返回版本号Gradle 4.9
...
我不明白发生了什么...有什么想法吗?谢谢!
答案 0 :(得分:0)
您必须将compile "com.google.android.gms:play-services-analytics:11.0.1"
更新为implementation "com.google.android.gms:play-services-analytics:15.0.1
。这正是导致版本冲突的原因,因为play-services-location
要求15.0.1
。同时已经有16.0.1
,这将需要更新其他版本号。
...同时,还有Firebase Analytics。
在Linux上,有时需要chmod +x ./gradlew
才能使其可执行...此文件应位于项目目录中; gradle -v
可能会返回全局版本号,该版本号可能与包装程序实际使用的版本不同。