Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/util/Function;

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/util/Function;

我收到此错误:

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/util/Function;  

这是完整的输出:

2018-11-09 18:33:22.546 24224-24224/com.test.notes.notes E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.test.notes.notes, PID: 24224
    java.lang.RuntimeException: Internal error in Firestore (0.6.6-dev).
        at com.google.android.gms.internal.firebase-firestore.zzkj.run(Unknown Source)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:241)
        at android.app.ActivityThread.main(ActivityThread.java:6274)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/util/Function;
        at com.google.android.gms.internal.firebase-firestore.zzfu.zzd(Unknown Source)
        at com.google.android.gms.internal.firebase-firestore.zzeg.<init>(Unknown Source)
        at com.google.android.gms.internal.firebase-firestore.zzcj.zza(Unknown Source)
        at com.google.android.gms.internal.firebase-firestore.zzcl.run(Unknown Source)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at com.google.android.gms.internal.firebase-firestore.zzkg$zza.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:761)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.util.Function" on path: DexPathList[[zip file "/data/app/com.test.notes.notes-1/base.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.test.notes.notes-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.test.notes.notes-1/lib/arm64, /system/lib64, /vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.google.android.gms.internal.firebase-firestore.zzfu.zzd(Unknown Source) 
        at com.google.android.gms.internal.firebase-firestore.zzeg.<init>(Unknown Source) 
        at com.google.android.gms.internal.firebase-firestore.zzcj.zza(Unknown Source) 
        at com.google.android.gms.internal.firebase-firestore.zzcl.run(Unknown Source) 
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
        at com.google.android.gms.internal.firebase-firestore.zzkg$zza.run(Unknown Source) 
        at java.lang.Thread.run(Thread.java:761) 
        Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.test.notes.notes-1/split_lib_slice_7_apk.apk
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:367)
        at dalvik.system.DexFile.<init>(DexFile.java:112)
        at dalvik.system.DexFile.<init>(DexFile.java:77)
        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:359)
        at dalvik.system.DexPathList.makeElements(DexPathList.java:323)
        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:263)
        at dalvik.system.DexPathList.<init>(DexPathList.java:126)
        at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48)
        at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
        at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)
        at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:541)
2018-11-09 18:33:22.546 24224-24224/com.test.notes.notes E/AndroidRuntime:     at android.app.LoadedApk.getClassLoader(LoadedApk.java:574)
        at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:1900)
        at android.app.LoadedApk.getResources(LoadedApk.java:787)
        at android.app.ContextImpl.<init>(ContextImpl.java:2038)
        at android.app.ContextImpl.createAppContext(ContextImpl.java:1983)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5439)
        at android.app.ActivityThread.-wrap2(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1576)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:241)
        at android.app.ActivityThread.main(ActivityThread.java:6274)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

而且我认为我的 build.gradle 是必需的,所以这是我的 build.gradle(项目:测试):

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 27
    buildToolsVersion '28.0.3'
    defaultConfig {
        applicationId "com.test.notes.notes"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 17
        versionName "5.1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        checkReleaseBuilds false
    }
    aaptOptions {
        cruncherEnabled = false
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.android.support:design:27.0.2'
    implementation 'com.android.support:cardview-v7:27.0.2'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:support-v4:27.0.2'
    implementation 'com.android.support:support-vector-drawable:27.0.2'

    implementation 'com.google.firebase:firebase-firestore:15.0.0'
    implementation 'com.firebaseui:firebase-ui-firestore:3.1.1'

    api 'com.joooonho:selectableroundedimageview:1.0.1'
    api 'com.github.bumptech.glide:glide:3.7.0'

    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'

    api 'com.google.firebase:firebase-core:16.0.5'
    api 'com.google.firebase:firebase-firestore:15.0.0'
    api 'com.google.firebase:firebase-storage:16.0.4'
    api 'com.google.firebase:firebase-auth:16.0.5'

    api 'com.crashlytics.sdk.android:crashlytics:2.9.5'
}

apply plugin: 'com.google.gms.google-services'

由于该错误,应用程序崩溃。
我认为 firebase SDK 可能有任何问题,但无法弄清楚?
请帮我解决这个问题。找了半天也没找到解决办法:(

编辑:
将所有内容更新到最新版本并添加后:

multiDexEnabled true  

...一切正常。但是现在我遇到了问题,为什么我最终降级了版本。请看看我的问题:我没有得到回复:
Updating code after firebase 16.0.+ update

当我能解决这个问题时,一切都会好起来的。

我在你的 build.gradle 中看到了一大堆问题。

第一类问题是你的大部分依赖项都已经过时了。

  • Android API 27 个支持库位于 27.1.1,而不是 27.0.2。
  • firebase-firestore 在 17.1.2 上,而不是 15.0.0。
  • firebase-ui-firestore 是 4.2.1,不是 2.1.1。
  • glide 是 4.8.0,不是 3.7.0。

依赖版本通常应该是最新的,但绝对必须是最新的,如果它们是来自 Google。否则,您 运行 就会陷入您遇到的错误类型。

第二个问题是您实施了两次 firebase-firestore,一次是 implementation,另一次是 api。删除一个或另一个。

一个有用的提示:如果依赖项以黄色突出显示,表示它已过时!单击文本,按 Alt+输入并选择更新到最新版本的选项。