Build fails with 'Program type already present: android.arch.core.util.Function'

前端 未结 5 1688
隐瞒了意图╮
隐瞒了意图╮ 2020-12-02 20:44

After updating my Firebase and Play Services dependencies as well as the Play Services Plugin my project fails to build. I\'ve tried multiple Clean-Rebuilds and my app has M

相关标签:
5条回答
  • 2020-12-02 21:02

    Program type already present: android.arch.core.util.Function Message{kind=ERROR, text=Program type already present: android.arch.core.util.Function, sources=[Unknown source file], tool name=Optional.of(D8)}

    I had the same problem above, and it was because i didn't include the core.

    implementation 'com.google.firebase:firebase-core:16.0.1'
    

    Noted some of your dependency is 16.0.1, would suggest you upgrade the core to 16.0.1 instead of 16.0.0.

    Have enclosed my dependency below for reference, hope you find it useful.

    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-database:16.0.1'
    implementation 'com.firebaseui:firebase-ui-database:4.1.0'
    
    0 讨论(0)
  • 2020-12-02 21:09

    Try replacing gradle files with:

    buildscript {
        repositories {
            jcenter()
            google()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.2'
            classpath 'com.google.gms:google-services:3.2.1'
        }
    }
    
    allprojects {
        repositories {
            maven { url 'https://jitpack.io' }
            jcenter()
            google()
        }
    }
    

    And Module:app grandle with:

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 27
        buildToolsVersion "27.0.3"
    
        defaultConfig {
            applicationId "com.example.myapp"
            minSdkVersion 16
            targetSdkVersion 27
            multiDexEnabled true
        }
    
        buildTypes {
    
            debug{
                debuggable true
                minifyEnabled false
            }
            release {
                debuggable false
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
            }
        }
        dexOptions {
            javaMaxHeapSize "4g"
        }
    
    
        repositories {
            jcenter()
            google()
            maven { url 'https://maven.google.com' }
        }
    
    
    
    }
    
    dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
        debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'
        releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
    
        implementation 'com.android.support:multidex:1.0.3'
        //Android Support
        implementation 'com.android.support:support-v13:27.1.1'
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support:design:27.1.1'
        implementation 'com.android.support:recyclerview-v7:27.1.1'
        implementation "com.android.support:cardview-v7:27.1.1"
        implementation "com.android.support:customtabs:27.1.1"
        implementation 'com.android.support.constraint:constraint-layout:1.1.0'
        implementation "com.android.support:support-v4:27.1.1"
    
        //Firebase
        implementation 'com.google.firebase:firebase-core:16.0.0'
        implementation 'com.google.firebase:firebase-analytics:16.0.0'
        implementation 'com.google.firebase:firebase-appindexing:15.0.1'
        implementation 'com.google.firebase:firebase-auth:16.0.1' //Maintain compatibility with com.firebaseui:firebase-ui-firestore
        implementation 'com.google.firebase:firebase-firestore:17.0.1' //Maintain compatibility with com.firebaseui:firebase-ui-firestore
        implementation 'com.google.firebase:firebase-functions:16.0.1'
        implementation 'com.google.firebase:firebase-messaging:17.0.0'
        //implementation 'com.google.firebase:firebase-storage:16.0.1' //Maintain compatibility with com.firebaseui:firebase-ui-firestore
        implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
            transitive = true
        }
        //implementation 'com.google.firebase:firebase-invites:16.0.0'
        implementation 'com.google.firebase:firebase-config:16.0.0'
    
        //Google Play
        implementation 'com.google.android.gms:play-services-ads:15.0.1'
        implementation 'com.google.android.gms:play-services-places:15.0.1'
        implementation 'com.google.android.gms:play-services-location:15.0.1'
    
        //Stream Support
        implementation 'net.sourceforge.streamsupport:streamsupport:1.6.0'
        implementation 'net.sourceforge.streamsupport:streamsupport-cfuture:1.6.0'
        implementation 'net.sourceforge.streamsupport:streamsupport-atomic:1.6.0'
        implementation 'net.sourceforge.streamsupport:streamsupport-flow:1.6.0'
        implementation 'net.sourceforge.streamsupport:streamsupport-literal:1.6.0'
    
        //Location
        implementation 'io.nlopez.smartlocation:library:3.3.3'
    
        //Firebase UI
        implementation 'com.firebaseui:firebase-ui-firestore:4.0.0'
    
        //Facebook
        implementation 'com.facebook.android:facebook-login:4.32.0'
    
        //Search
        implementation 'com.algolia:algoliasearch-android:3.14.1'
    
        //Butterknife
        implementation 'com.jakewharton:butterknife:8.8.1'
        annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
    
        //UI Elements for layout staggering
        implementation 'com.google.android:flexbox:0.3.2'
    
        //Image Handling Library
        implementation 'com.facebook.fresco:fresco:1.8.0'
    
        // UI Element for Country-code
        implementation 'com.hbb20:ccp:2.1.2'
    
        // UI Element for OTP
        implementation 'com.github.GoodieBag:Pinview:v1.3'
    
        //Loading indicator using shimmer
        implementation 'io.supercharge:shimmerlayout:2.0.0'
    
        //UI Element for Tooltip
        implementation 'it.sephiroth.android.library.targettooltip:target-tooltip-library:1.3.15'
    
        //Date/Time Pickers for Hangout Creation
        implementation 'com.wdullaer:materialdatetimepicker:3.5.1'
    
        //UI Element from Drop-down boxes
        implementation('com.weiwangcn.betterspinner:library-material:1.1.0') {
            exclude group: 'com.android.support', module: 'appcompat-v7'
            exclude group: 'com.android.support', module: 'appcompat-v4'
        }
    
        //JSON Handling
        implementation 'com.google.code.gson:gson:2.8.2'
    
        //Permissions using RxPermissions
        implementation 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar'
    
        //RxBindings for Platform
        implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1'
        implementation 'com.jakewharton.rxbinding2:rxbinding-recyclerview-v7:2.1.1'
        implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.1.1'
        implementation 'com.jakewharton.rxbinding2:rxbinding-design:2.1.1'
    
        //Logging
        implementation 'com.jakewharton.timber:timber:4.6.0'
    
        //Testing
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    
    apply plugin: 'com.google.gms.google-services'
    
    0 讨论(0)
  • 2020-12-02 21:13

    I found the solution which some great guy posted on GitHub. Instead of downgrading your firebaseUI database, you can add arch common and runtime dependencies which are these:

    //Arch
        implementation "android.arch.core:runtime:1.1.1"
        implementation "android.arch.core:common:1.1.1"
    

    Just add these in your app: module dependencies section and you know build it.

    0 讨论(0)
  • 2020-12-02 21:18

    The solution is to add the below implemention on your build.gradle in android studio. Hope it helps.

     implementation "android.arch.core:runtime:$version"
     implementation "android.arch.core:common:$version"
    
    0 讨论(0)
  • 2020-12-02 21:20

    My project works with the latest version of firebase core, database, messaging and auth dependencies and latest classpath 'com.google.gms:google-services:4.0.1'

    App/build.gradle

    dependencies {
    
        // Tab Layout and ViewPager
        implementation 'com.android.support:design:27.1.1'
    
        // firebase dependencies
        // implementation 'com.firebaseui:firebase-ui-database:4.0.0' Source of error
        implementation 'com.google.firebase:firebase-core:16.0.0'
        implementation 'com.google.firebase:firebase-database:16.0.1'
        implementation 'com.google.firebase:firebase-messaging:17.0.0'
        implementation 'com.google.firebase:firebase-auth:16.0.1'
    }
    

    build.gradle

    buildscript {
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.2'
            
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
            classpath 'com.google.gms:google-services:4.0.1'
        }
    }
    

    The problem evolves when adding implementation 'com.firebaseui:firebase-ui-database:4.0.0'

    It shows this error:

    Program type already present: android.arch.core.util.Function

    Message{kind=ERROR, text=Program type already present: android.arch.core.util.Function, sources=[Unknown source file], tool name=Optional.of(D8)}

    The solution was to downgrade implementation 'com.firebaseui:firebase-ui-database:4.0.0' to implementation 'com.firebaseui:firebase-ui-database:3.3.1' as follows:

    App/build.gradle

    dependencies {
    
        // Tab Layout and ViewPager
        implementation 'com.android.support:design:27.1.1'
    
        // firebase dependencies
        implementation 'com.firebaseui:firebase-ui-database:3.1.1' // No trouble in compiling
        implementation 'com.google.firebase:firebase-core:16.0.0'
        implementation 'com.google.firebase:firebase-database:16.0.1'
        implementation 'com.google.firebase:firebase-messaging:17.0.0'
        implementation 'com.google.firebase:firebase-auth:16.0.1'
    }
    

    I hope Google will solve this issue in future updates.

    Hope that helped!

    0 讨论(0)
提交回复
热议问题