android - Firebase android 性能 NoClassDefFoundError -> FirebasePerfUrlConnection

标签 android firebase noclassdeffounderror firebase-performance

有没有人面临同样的问题?将 Firebase 性能添加到项目后,会在启动应用程序后立即发生错误。它仅在调试版本中崩溃,在发布版本中一切都按预期工作。也许有人有真正的答案,因为我在类似问题中发现的只是通过反复试验的方法来处理库版本。 Multidex 已打开。

错误:

E/AndroidRuntime: FATAL EXCEPTION: RxCachedThreadScheduler-2
Process: {PROJECT PACKAGE}, PID: 9872
io.reactivex.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#error-handling | java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/perf/network/FirebasePerfUrlConnection;
    at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)
    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)
    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:919)
 Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/perf/network/FirebasePerfUrlConnection;
    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy.createHttpUrlConnection(WalledGardenInternetObservingStrategy.java:124)
    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy.isConnected(WalledGardenInternetObservingStrategy.java:107)
    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy$1.apply(WalledGardenInternetObservingStrategy.java:66)
    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy$1.apply(WalledGardenInternetObservingStrategy.java:64)
    at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)
    at io.reactivex.internal.operators.observable.ObservableInterval$IntervalObserver.run(ObservableInterval.java:82)
    at io.reactivex.Scheduler$PeriodicDirectTask.run(Scheduler.java:532)
    at io.reactivex.Scheduler$Worker$PeriodicTask.run(Scheduler.java:479)
    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
    at java.lang.Thread.run(Thread.java:919) 
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.perf.network.FirebasePerfUrlConnection" on path: DexPathList[[zip file "/data/app/{PROJECT PACKAGE}--VDzbFrnWyQza3gXDNMSSA==/base.apk"],nativeLibraryDirectories=[/data/app/{PROJECT PACKAGE}--VDzbFrnWyQza3gXDNMSSA==/lib/x86_64, /data/app/{PROJECT PACKAGE}--VDzbFrnWyQza3gXDNMSSA==/base.apk!/lib/x86_64, /system/lib64, /system/product/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy.createHttpUrlConnection(WalledGardenInternetObservingStrategy.java:124) 
    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy.isConnected(WalledGardenInternetObservingStrategy.java:107) 
    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy$1.apply(WalledGardenInternetObservingStrategy.java:66) 
    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy$1.apply(WalledGardenInternetObservingStrategy.java:64) 
    at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57) 
    at io.reactivex.internal.operators.observable.ObservableInterval$IntervalObserver.run(ObservableInterval.java:82) 
    at io.reactivex.Scheduler$PeriodicDirectTask.run(Scheduler.java:532) 
    at io.reactivex.Scheduler$Worker$PeriodicTask.run(Scheduler.java:479) 
    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66) 
    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
    at java.lang.Thread.run(Thread.java:919) 

构建脚本:
buildscript {
    ext {
        commonVariables = [
                applicationVersionName: "{APP VERSION}",
                applicationVersionCode: {APP VERSION CODE},
                compileSdkVersion     : 29,
                minSdkVersion         : 21,
                targetSdkVersion      : 29,
                buildToolsVersion     : "29.0.2"
        ]

        kotlin_version = "1.3.72"
        rx_binding_version = "3.1.0"
        koin_version = "2.1.5"
        moshi_version = "1.9.2"
        lifecycle_version = "2.2.0"
        paging_version = "2.1.2"
        flipper_version = "0.44.0"
        nav_version = "2.2.2"
        room_version = "2.2.5"
        realm_version = "6.1.0"

        commonDependencies = [
            kotlinLib               : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version",
            appCompat               : "androidx.appcompat:appcompat:1.1.0",
            rxJava                  : "io.reactivex.rxjava2:rxjava:2.2.19",
            rxAndroid               : "io.reactivex.rxjava2:rxandroid:2.1.1",
            rxKotlin                : "io.reactivex.rxjava2:rxkotlin:2.4.0",
            coreKtx                 : "androidx.core:core-ktx:1.2.0",
            activity                : "androidx.activity:activity-ktx:1.1.0",
            fragment                : "androidx.fragment:fragment-ktx:1.2.4",
            recyclerView            : "androidx.recyclerview:recyclerview:1.1.0",
            swipeRefreshLayout      : "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0",
            materialComponents      : "com.google.android.material:material:1.2.0-alpha06",
            constraintLayout        : "androidx.constraintlayout:constraintlayout:1.1.3",
            jodaTime                : 'joda-time:joda-time:2.10.6',
            rxPermissions           : "com.github.tbruyelle:rxpermissions:0.10.2",
            rxBindingsCore          : "com.jakewharton.rxbinding3:rxbinding-core:$rx_binding_version",
            rxBindingsAppCompat     : "com.jakewharton.rxbinding3:rxbinding-appcompat:$rx_binding_version",
            rxBindingsMaterial      : "com.jakewharton.rxbinding3:rxbinding-material:$rx_binding_version",
            rxBindingsRecyclerView  : "com.jakewharton.rxbinding3:rxbinding-recyclerview:$rx_binding_version",
            koin                    : "org.koin:koin-core:$koin_version",
            koinExperimental        : "org.koin:koin-core-ext:$koin_version",
            koinAndroidX            : "org.koin:koin-android:$koin_version",
            koinAndroidXScope       : "org.koin:koin-androidx-scope:$koin_version",
            koinAndroidXViewModel   : "org.koin:koin-androidx-viewmodel:$koin_version",
            koinAndroidXFragment    : "org.koin:koin-androidx-fragment:$koin_version",
            koinAndroidXExperimental: "org.koin:koin-androidx-ext:$koin_version",
            moshi                   : "com.squareup.moshi:moshi-kotlin:$moshi_version",
            moshiKapt               : "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version",
            moshiAdapters           : "com.squareup.moshi:moshi-adapters:$moshi_version",
            lifecycleRuntime        : "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version",
            lifecycleExtensions     : "androidx.lifecycle:lifecycle-extensions:$lifecycle_version",
            pagingCommon            : "androidx.paging:paging-common-ktx:$paging_version",
            pagingRuntime           : "androidx.paging:paging-runtime-ktx:$paging_version",
            pagingRxJava            : "androidx.paging:paging-rxjava2-ktx:$paging_version",
            flipper                 : "com.facebook.flipper:flipper:$flipper_version",
            flipperNetworkPlugin    : "com.facebook.flipper:flipper-network-plugin:$flipper_version",
            soloader                : "com.facebook.soloader:soloader:0.5.1",
            navigationRuntime       : "androidx.navigation:navigation-runtime-ktx:$nav_version",
            navigationUI            : "androidx.navigation:navigation-fragment-ktx:$nav_version",
            navigationFragment      : "androidx.navigation:navigation-ui-ktx:$nav_version",
            room                    : "androidx.room:room-runtime:$room_version",
            roomKtx                 : "androidx.room:room-ktx:$room_version",
            rxRoom                  : "androidx.room:room-rxjava2:$room_version",
            roomAnnotation          : "androidx.room:room-compiler:$room_version"
        ]
    }

    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "com.google.gms:google-services:4.3.3"
        classpath "com.google.firebase:firebase-crashlytics-gradle:2.1.1"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
        classpath "io.realm:realm-gradle-plugin:$realm_version"
        classpath 'com.google.firebase:perf-plugin:1.3.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

应用分级:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: "androidx.navigation.safeargs.kotlin"
apply plugin: 'realm-android'
apply plugin: 'com.google.firebase.firebase-perf'

android {
    ...

    defaultConfig {
        ...
        multiDexEnabled true
        ...
    }
}

dependencies {
    ...
    implementation 'com.android.support:multidex:1.0.3'

    releaseImplementation 'com.google.firebase:firebase-analytics:17.4.2'
    releaseImplementation 'com.google.firebase:firebase-crashlytics:17.0.0'
    releaseImplementation 'com.google.firebase:firebase-perf:19.0.7'

    implementation 'com.google.firebase:firebase-messaging:20.2.0'
    implementation 'com.google.firebase:firebase-ml-vision:24.0.3'
    implementation 'com.google.firebase:firebase-ml-vision-barcode-model:16.1.1'
    ...
}

最佳答案

包括所有或删除所有这些
构建 Gradle (AppName)

dependencies {
    classpath 'com.google.firebase:perf-plugin:1.3.4'
}
构建 Gradle (:app)
在页面顶部
apply plugin: 'com.google.firebase.firebase-perf'
然后
dependencies {
    implementation 'com.google.firebase:firebase-perf:19.1.0'
}

关于android - Firebase android 性能 NoClassDefFoundError -> FirebasePerfUrlConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62085266/

相关文章:

java - 如何将 Intent 数据设置为当前 Activity editText?

安卓 : Change color of blue shine (blue highlight) in List View

javascript - 为什么 Angular ChartJS 中的一个标签上有更多列?

java - 无法从 Firebase(Cloud Firestore 数据库)获取数据

Java Applet 在 Netbeans 中运行,但不会在浏览器中运行

java - NoClassDefFoundError 仅在我的机器上

java - NoClassDefFoundError: com.parse.ParseObject$1

android - 为什么 android 中的 VideoView 从 http 链接加载和播放视频需要花费太多时间?

java - 库中的 Google 广告商 ID

firebase - Firestore安全规则: get() use in hasAny() list method