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's 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'
どうやら、これは意図された動作です:
com.firebaseui:firebase-ui-firestore:3.1.0はAndroid.Arch.lifecycle:extensions:1.0.0-beta1に依存します。バージョン3.2.2に切り替えると、サポートライブラリ27.1.0が構築されているLifecycle 1.1ライブラリを使用して問題が修正されます。 - Issue Tracker
私にとっては、firebase-ui
依存関係を削除すると、そもそもライブラリを使用していなかったため、問題が解決しました。
今日、サポートライブラリのバージョンを上げたときに、まったく同じ問題が発生しました。
all '27 .1.0 'を'27 .0.2'に置き換えてみてください
後で、他のライブラリもアップグレードすることでエラーを取り除くことができました。これが私の現在の動作状態です:ルートグラドル:
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" }
}
}
////////////////// app gradleライブラリ:
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation('com.crashlytics.sdk.Android:crashlytics:2.9.1@aar') {
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:0.7@aar'
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
この投稿は、非常によく似たエラーの上位の検索結果です:「プログラムの種類は既に存在します:Android.Arch.lifecycle。ViewModelProvider $ Factory」
私のプロジェクトでは、FirebaseではなくRoomとLiveDataを使用しています。次の変更によりエラーが削除されました。
から:
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'
に:
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
Firebase-UI 3.1.0はFirebase/Google Services 11.8.0と互換性がありません
https://github.com/firebase/FirebaseUI-Android#compatibility-with-firebase--google-play-services-libraries に従ってアップグレードまたはダウングレードする必要があります。
この助けを願っています;)
また、元の質問にエラーが投稿されました:
Error:Program type already present: Android.Arch.lifecycle.LiveData
どのライブラリが問題を引き起こしているかは明らかではありませんでした。上記の@lienmtからのヒントで、Firebaseに関連している可能性があることに気付きました。
私の場合、Firebaseを使用しており、firebase-uiライブラリ3.2.2も使用していました。
implementation 'com.firebaseui:firebase-ui-database:3.2.2'
私は他のすべてのFirebaseライブラリを15.0.0にアップグレードしましたが、firebase-uiライブラリは互換性がないことに気付き、ここで確認しました。
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'
アプリのbuild.gradleファイルに次の依存関係を追加してください
implementation "Android.Arch.core:runtime:1.1.1"
implementation "Android.Arch.core:common:1.1.1"
@Edric:スレッド内の画像で再生できなかったので、ここであなたの質問に答えています。
私のために働いた変更:
PS:gradle-wrapper.propertiesのdistributionUrlも http://services.gradle.org/distributions/gradle-4.6-all.Zip にアップグレードしました
アップグレードする必要があります。私にとっては、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!
これに従ってください リンク 私がそれをどのように解決したかについて他の詳細が必要な場合は、これでうまくいくはずです!
Edricの言及のように、これは、一部のライブラリがAndroid.Arch.lifecycle:extensionsライブラリの古いバージョン、つまりAndroid.Arch.lifecycle:extensions:1.0.0
をまだ使用しているために発生します。
これを処理する1つの方法は、アプリにそのライブラリの同じバージョンを使用するよう強制することです(できれば、最新のものを使用します)。
それを行うには2つの方法があります。
依存関係セクションの下で、Gradleで使用するライブラリバージョンを明示的に定義しました。
implementation 'Android.Arch.lifecycle:extensions:1.1.1
または
dependencies
セクションの下でも、ライブラリの解決を強制します。
Android {
configurations.all {
resolutionStrategy.force 'Android.Arch.lifecycle:extensions:1.1.1'
}
}
私の場合、targetSdkVersion
およびcompileSdkVersion
を28に上げ、すべてのサポートライブラリのバージョン28を使用すると問題が修正されました。
Glideをアップグレードしたときにこれに遭遇しました。 CoordinatorLayoutの複製 に関するエラーが発生しました。 I 解決済み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'
ヨロだから愚かな運によって、それは働いた。