Мой проект работал нормально до одного дня, без причины (я ничего не менял), gradle начал выдавать странную ошибку:
Program type already present: com.google.android.gms.internal.measurement.zzabo
Во время этой ошибки мой уровень проектаgradle был примерно таким:
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com'
// Alternative URL is 'https://dl.google.com/dl/android/maven2/'
}
maven { url 'https://plugins.gradle.org/m2/'}
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:4.0.0'
classpath 'io.fabric.tools:gradle:1.25.3'
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.8.1'
}
}
allprojects {
repositories {
jcenter()
maven {
url 'https://dl.bintray.com/sayyam/maven'
}
maven {
url "https://jitpack.io"
}
maven {
url 'https://maven.google.com'
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
, и это был уровень моего уровня приложения:
apply plugin: 'com.android.application'
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: 'io.fabric'
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
dexOptions {
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/rxjava.properties'
}
defaultConfig {
applicationId "com.example"
deviceCheck
minSdkVersion 17
targetSdkVersion 27
versionCode 8
versionName "1.0"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.firebase:firebase-invites:15.0.1'
implementation 'com.google.firebase:firebase-core:15.0.2'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.2'
implementation 'com.google.android.gms:play-services-maps:15.0.1'
implementation 'com.google.android.gms:play-services-location:15.0.1'
implementation 'com.google.android.gms:play-services-places:15.0.1'
implementation 'com.google.maps.android:android-maps-utils:0.5'
implementation 'com.android.support:support-v13:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:appcompat-v7:27.1.1'
.....other dependencies.....
testImplementation 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
Я искал и нашел этот ответ на stackoverflow.Который говорит, что эта проблема может быть связана с версией зависимости firebase и плагином google-services.Поэтому я обновил google-services
версию плагина до 4.0.0
и Firebase до последней версии 16.0.0
.И, как можно было ожидать от gradle, он выдал еще одну ошибку, которая, похоже, связана с firebase версии 16.0.0.
Всякий раз, когда я меняю версию firebase на 16.0.0, очевидно, он пытается автоматически обновить зависимости служб Google Play до 16.0.0.Которого ДАЖЕ не существует!Возникает следующая ошибка gradle:
Failed to resolve: com.google.android.gms:play-services-maps:16.0.0
Failed to resolve: com.google.android.gms:play-services-location:16.0.0
Failed to resolve: com.google.android.gms:play-services-places:16.0.0
Failed to resolve: com.google.android.gms:play-services-gcm:16.0.0
Failed to resolve: com.google.android.gms:play-services-base:16.0.0
Failed to resolve: com.google.android.gms:play-services-basement:16.0.0
Failed to resolve: com.google.android.gms:play-services-measurement-base:16.0.0
Failed to resolve: com.google.android.gms:play-services-tasks:16.0.0
Failed to resolve: com.google.android.gms:play-services-stats:16.0.0
Failed to resolve: com.google.android.gms:play-services-ads-identifier:16.0.0
Я пытался форсировать версию библиотек gms с использованием resolutionStrategy, но безрезультатно.Что я должен делать?Что я делаю не так?
ПРИМЕЧАНИЕ. Я не изменил версию библиотек сервисов воспроизведения явно, похоже, gradle делает это из-за firebase.
РЕДАКТИРОВАТЬ: Эта проблемаможет быть решена с помощью решения, указанного в этом вопросе, но все еще не является дубликатом, поскольку в моем случае плагин onesignal обновлял только gms версию библиотеки, а не firebase версию,Поэтому любой, кто сталкивается с этой проблемой, не будет искать ключевые слова, используемые в этом вопросе.