Ошибка: тип программы уже присутствует: android.arch.lifecycle.LiveData
Когда я нажимаю кнопку воспроизведения в Android Studio, мое приложение компилируется, но отображается эта ошибка (отредактировано):
Ошибка: тип программы уже присутствует: android.arch.lifecycle.LiveData
(Полный журнал)
Я попытался удалить папку .gradle
, а затем перейти в " Build > Clean Project
и " Build > Rebuild Project
. Тем не менее, это не работает. Я также попытался удалить исходный код, затем снова клонировать из git
и импортировать папку в Android Studio. Тем не менее, он все еще производит эту ошибку.
Вот мое приложение app/build.gradle
:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "com.edricchan.studybuddy"
minSdkVersion 24
targetSdkVersion 27
versionCode 8
versionName "1.0.0-rc.503"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
resConfigs "en"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dataBinding {
enabled = true
}
}
dependencies {
implementation 'com.android.support:support-v4:27.1.0'
implementation 'com.android.support:support-annotations:27.1.0'
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:27.1.0'
implementation 'com.android.support:cardview-v7:27.1.0'
testImplementation 'junit:junit:4.12'
// Firebase stuff
implementation 'com.google.firebase:firebase-storage:11.8.0'
implementation 'com.google.firebase:firebase-firestore:11.8.0'
implementation 'com.google.firebase:firebase-auth:11.8.0'
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.google.android.gms:play-services-auth:11.8.0'
implementation 'com.firebaseui:firebase-ui-auth:3.1.0'
implementation 'com.firebaseui:firebase-ui-firestore:3.1.0'
implementation 'com.firebaseui:firebase-ui-storage:3.1.0'
// Provide a way to update the app
implementation 'com.github.javiersantos:AppUpdater:2.6.4'
// Chrome Custom Tabs
implementation 'com.android.support:customtabs:27.1.0'
// The app intro screen
implementation 'com.heinrichreimersoftware:material-intro:1.6.2'
// Use for new Material Text field boxes recently introduced
implementation 'com.github.HITGIF:TextFieldBoxes:1.3.7'
// Report an issue to Github without having to open a new tab and so on...
implementation 'com.heinrichreimersoftware:android-issue-reporter:1.3.1'
}
apply plugin: 'com.google.gms.google-services'
Ответы
Ответ 1
По-видимому, это предполагаемое поведение:
com.firebaseui: firebase-ui-firestore: 3.1.0 зависит от android.arch.lifecycle: extensions: 1.0.0-beta1. Переключение на версию 3.2.2 устраняет проблему с использованием библиотек Lifecycle 1.1, на которых построена поддержка библиотеки 27.1.0. - Отслеживание проблем
Для меня устранение зависимостей firebase-ui
решило проблему, поскольку я даже не использовал библиотеку в первую очередь.
Ответ 2
У меня была такая же проблема сегодня, когда я поднял версию библиотеки поддержки.
Попробуйте заменить все '27.1.0 'на '27.0.2'
Позже я удалил ошибку, обновив другие библиотеки. Это мое текущее рабочее состояние: root gradle:
buildscript {
ext.kotlin_version = '1.2.21'
ext.support_version = '27.1.0'
ext.anko_version = '0.10.4'
ext.android_plugin_version = '3.0.1'
ext.google_services_version = '11.8.0'
repositories {
google()
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
classpath 'com.android.tools.build:gradle:3.1.0-beta4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:3.1.1'
}
}
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
}
//////////////////библиотеки приложений gradle:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation('com.crashlytics.sdk.android:crashlytics:[email protected]') {
transitive = true
}
// kotlin:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation "org.jetbrains.anko:anko-common:$anko_version"
implementation "org.jetbrains.anko:anko-commons:$anko_version"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.22.3'
// support libraries:
implementation "com.android.support:recyclerview-v7:$support_version"
implementation "com.android.support:support-v4:$support_version"
implementation "com.android.support:design:$support_version"
implementation "com.android.support:appcompat-v7:$support_version"
implementation "com.android.support:cardview-v7:$support_version"
implementation "com.android.support:support-vector-drawable:$support_version"
// misc:
implementation 'com.github.d-max:spots-dialog:[email protected]'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta5'
implementation 'com.backendless:backendless:4.4.0'
implementation 'io.nlopez.smartlocation:library:3.3.3'
// Google services:
implementation "com.google.firebase:firebase-core:$google_services_version"
implementation "com.google.firebase:firebase-auth:$google_services_version"
implementation 'com.firebaseui:firebase-ui-auth:3.2.2'
implementation "com.google.android.gms:play-services-location:$google_services_version"
implementation "com.google.android.gms:play-services-auth:$google_services_version"
implementation('com.google.api-client:google-api-client:1.23.0') {
exclude group: 'com.google.code.findbugs', module: 'jsr305'
}
}
///////////////
Я также обновил graddle-wrapper.properties до:
#Wed Dec 20 15:08:34 CET 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
Ответ 3
Этот пост является лучшим результатом поиска для очень похожей ошибки: "Тип программы уже присутствует: android.arch.lifecycle. ViewModelProvider $ Factory "
Мой проект использует Room и LiveData, но не Firebase. Следующие изменения устранили ошибку:
ОТ:
implementation 'android.arch.persistence.room:runtime:1.0.0'
annotationProcessor 'android.arch.persistence.room:compiler:1.0.0'
implementation 'android.arch.lifecycle:extensions:1.0.0'
annotationProcessor 'android.arch.lifecycle:compiler:1.0.0'
TO:
implementation 'android.arch.persistence.room:runtime:1.1.1'
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'
implementation 'android.arch.lifecycle:extensions:1.1.1'
annotationProcessor 'android.arch.lifecycle:compiler:1.1.1'
--- ОБНОВЛЕННЫЙ ОТВЕТ ---
Мой предыдущий ответ был нацелен на решение этой ошибки. Однако я подумал, что стоило бы представить его снова, используя лучшие практики:
Уровень приложения build.gradle:
// Room components
implementation "android.arch.persistence.room:runtime:$rootProject.roomVersion"
annotationProcessor "android.arch.persistence.room:compiler:$rootProject.roomVersion"
androidTestImplementation "android.arch.persistence.room:testing:$rootProject.roomVersion"
// Lifecycle components
implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"
annotationProcessor "android.arch.lifecycle:compiler:$rootProject.archLifecycleVersion"
Файл build.gradle уровня проекта:
ext {
roomVersion = '1.1.1'
archLifecycleVersion = '1.1.1'
}
Ссылка:
https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#2
Ответ 4
Firebase-UI 3.1.0 не совместим с Firebase/Google Services 11.8.0
Вам необходимо будет обновить или понизить в соответствии с https://github.com/firebase/FirebaseUI-Android#compatibility-with-firebase--google-play-services-libraries
- Firebase-UI 3.1.0 с Firebase/Google Services 11.4.2
- Firebase/Google Services 11.8.0 с Firebase-UI 3.1.3
Надеюсь эта помощь;)
Ответ 5
У меня также была ошибка, отправленная в исходном вопросе, а именно:
Error:Program type already present: android.arch.lifecycle.LiveData
Неясно, какие библиотеки вызывают проблему. С подсказкой от @lienmt выше я понял, что это может быть связано с Firebase.
В моем случае я использую Firebase и также использовал firebase-ui library 3.2.2:
implementation 'com.firebaseui:firebase-ui-database:3.2.2'
Я обновил все мои библиотеки Firebase до 15.0.0, но понял, что моя библиотека firebase-ui несовместима и подтвердила ее здесь:
https://github.com/firebase/FirebaseUI-Android#compatibility-with-firebase--google-play-services-libraries
Обязательно сравните свою версию firebase-ui с точными версиями Firebase, для которых они исправлены для спаривания.
Нападение моей версии firebase-ui на 3.3.1 было тем, что разрешило ошибку:
implementation 'com.firebaseui:firebase-ui-database:3.3.1'
Для справки здесь используются версии, которые я использую сейчас, и мое приложение работает без ошибок:
implementation 'com.google.android.gms:play-services-wearable:15.0.0'
implementation 'com.google.android.gms:play-services-auth:15.0.0'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation 'com.google.firebase:firebase-database:15.0.0'
implementation 'com.google.firebase:firebase-core:15.0.0'
implementation 'com.google.firebase:firebase-auth:15.0.0'
implementation 'com.google.firebase:firebase-messaging:15.0.0'
implementation 'com.firebaseui:firebase-ui-database:3.3.1'
Ответ 6
Добавьте дополнительные зависимости в файл build.gradel приложения.
implementation "android.arch.core:runtime:1.1.1"
implementation "android.arch.core:common:1.1.1"
Ответ 7
@Edric: поскольку я не мог воспроизвести изображения в потоке, я отвечаю на ваш вопрос здесь.
Изменения, которые сработали для меня:
![Project level]()
PS: Я также обновил дистрибутивUrl в файле gradle-wrapper.properties по адресу http://services.gradle.org/distributions/gradle-4.6-all.zip
Ответ 8
Как упоминает Эдрик, это происходит потому, что некоторые библиотеки все еще используют старую версию android.arch.lifecycle: extensions library, то есть android.arch.lifecycle:extensions:1.0.0
.
Один из способов справиться с этим - заставить приложение использовать ту же версию этой библиотеки (и, если возможно, использовать новейшую версию).
Есть два способа сделать это:
-
Явно определили версию библиотеки, которую мы хотим использовать в нашем Gradle, в разделе зависимостей.
implementation 'android.arch.lifecycle:extensions:1.1.1
или же
-
Принудительное разрешение библиотеки, также в разделе dependencies
.
android {
configurations.all {
resolutionStrategy.force 'android.arch.lifecycle:extensions:1.1.1'
}
}
Ответ 9
В моем случае, targetSdkVersion
compileSdkVersion
с targetSdkVersion
и compileSdkVersion
до 28, а также с использованием версии 28 всех вспомогательных библиотек compileSdkVersion
проблему.
Я столкнулся с этим, когда я обновил Glide. Я получил ошибку относительно дубликата CoordinatorLayout. Я решил это с помощью com.android.support:design:27.1.0
, но затем я получил еще одну ошибку, касающуюся LiveData$LifecycleBoundObserver
.
Через несколько часов я отказался и обновил targetSdkVersion
и compileSdkVersion
до API 28, а также использовал
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
потому что ЙОЛО. По счастливой случайности это сработало.
Ответ 10
Просто нужно обновить. Мне пришлось обновить следующее в файле app build.gradle:
implementation 'com.google.firebase:firebase-core:16.0.8'
implementation 'com.google.firebase:firebase-auth:16.2.0'
implementation 'com.firebaseui:firebase-ui-database:3.2.2'
Тогда вы будете синхронизировать ваши файлы. При запуске вы получите новый вопрос установки не удалось всплывающие окна. Просто отмените их и сделайте следующее:
1) Build -> Clean Project
2) Build -> Build Bundle(s) / APK(s) -> Build APK(s)
3) Run your project! Should work!
Перейдите по этой ссылке, если вы хотите узнать какие-либо другие подробности о том, как я это решил, но это должно помочь!