Firebase android 性能 NoClassDefFoundError -> FirebasePerfUrlConnection

Nik*_*ron 6 android noclassdeffounderror firebase firebase-performance

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

\n\n

错误:

\n\n
E/AndroidRuntime: FATAL EXCEPTION: RxCachedThreadScheduler-2\nProcess: {PROJECT PACKAGE}, PID: 9872\nio.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;\n    at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:367)\n    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:69)\n    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:266)\n    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)\n    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)\n    at java.lang.Thread.run(Thread.java:919)\n Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/perf/network/FirebasePerfUrlConnection;\n    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy.createHttpUrlConnection(WalledGardenInternetObservingStrategy.java:124)\n    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy.isConnected(WalledGardenInternetObservingStrategy.java:107)\n    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy$1.apply(WalledGardenInternetObservingStrategy.java:66)\n    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy$1.apply(WalledGardenInternetObservingStrategy.java:64)\n    at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)\n    at io.reactivex.internal.operators.observable.ObservableInterval$IntervalObserver.run(ObservableInterval.java:82)\n    at io.reactivex.Scheduler$PeriodicDirectTask.run(Scheduler.java:532)\n    at io.reactivex.Scheduler$Worker$PeriodicTask.run(Scheduler.java:479)\n    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)\n    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)\xc2\xa0\n    at java.util.concurrent.FutureTask.run(FutureTask.java:266)\xc2\xa0\n    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)\xc2\xa0\n    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)\xc2\xa0\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)\xc2\xa0\n    at java.lang.Thread.run(Thread.java:919)\xc2\xa0\n 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]]\n    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)\n    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)\n    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)\n    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy.createHttpUrlConnection(WalledGardenInternetObservingStrategy.java:124)\xc2\xa0\n    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy.isConnected(WalledGardenInternetObservingStrategy.java:107)\xc2\xa0\n    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy$1.apply(WalledGardenInternetObservingStrategy.java:66)\xc2\xa0\n    at com.github.pwittchen.reactivenetwork.library.rx2.internet.observing.strategy.WalledGardenInternetObservingStrategy$1.apply(WalledGardenInternetObservingStrategy.java:64)\xc2\xa0\n    at io.reactivex.internal.operators.observable.ObservableMap$MapObserver.onNext(ObservableMap.java:57)\xc2\xa0\n    at io.reactivex.internal.operators.observable.ObservableInterval$IntervalObserver.run(ObservableInterval.java:82)\xc2\xa0\n    at io.reactivex.Scheduler$PeriodicDirectTask.run(Scheduler.java:532)\xc2\xa0\n    at io.reactivex.Scheduler$Worker$PeriodicTask.run(Scheduler.java:479)\xc2\xa0\n    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)\xc2\xa0\n    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)\xc2\xa0\n    at java.util.concurrent.FutureTask.run(FutureTask.java:266)\xc2\xa0\n    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)\xc2\xa0\n    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)\xc2\xa0\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)\xc2\xa0\n    at java.lang.Thread.run(Thread.java:919)\xc2\xa0\n
Run Code Online (Sandbox Code Playgroud)\n\n

构建脚本:

\n\n
buildscript {\n    ext {\n        commonVariables = [\n                applicationVersionName: "{APP VERSION}",\n                applicationVersionCode: {APP VERSION CODE},\n                compileSdkVersion     : 29,\n                minSdkVersion         : 21,\n                targetSdkVersion      : 29,\n                buildToolsVersion     : "29.0.2"\n        ]\n\n        kotlin_version = "1.3.72"\n        rx_binding_version = "3.1.0"\n        koin_version = "2.1.5"\n        moshi_version = "1.9.2"\n        lifecycle_version = "2.2.0"\n        paging_version = "2.1.2"\n        flipper_version = "0.44.0"\n        nav_version = "2.2.2"\n        room_version = "2.2.5"\n        realm_version = "6.1.0"\n\n        commonDependencies = [\n            kotlinLib               : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version",\n            appCompat               : "androidx.appcompat:appcompat:1.1.0",\n            rxJava                  : "io.reactivex.rxjava2:rxjava:2.2.19",\n            rxAndroid               : "io.reactivex.rxjava2:rxandroid:2.1.1",\n            rxKotlin                : "io.reactivex.rxjava2:rxkotlin:2.4.0",\n            coreKtx                 : "androidx.core:core-ktx:1.2.0",\n            activity                : "androidx.activity:activity-ktx:1.1.0",\n            fragment                : "androidx.fragment:fragment-ktx:1.2.4",\n            recyclerView            : "androidx.recyclerview:recyclerview:1.1.0",\n            swipeRefreshLayout      : "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0",\n            materialComponents      : "com.google.android.material:material:1.2.0-alpha06",\n            constraintLayout        : "androidx.constraintlayout:constraintlayout:1.1.3",\n            jodaTime                : \'joda-time:joda-time:2.10.6\',\n            rxPermissions           : "com.github.tbruyelle:rxpermissions:0.10.2",\n            rxBindingsCore          : "com.jakewharton.rxbinding3:rxbinding-core:$rx_binding_version",\n            rxBindingsAppCompat     : "com.jakewharton.rxbinding3:rxbinding-appcompat:$rx_binding_version",\n            rxBindingsMaterial      : "com.jakewharton.rxbinding3:rxbinding-material:$rx_binding_version",\n            rxBindingsRecyclerView  : "com.jakewharton.rxbinding3:rxbinding-recyclerview:$rx_binding_version",\n            koin                    : "org.koin:koin-core:$koin_version",\n            koinExperimental        : "org.koin:koin-core-ext:$koin_version",\n            koinAndroidX            : "org.koin:koin-android:$koin_version",\n            koinAndroidXScope       : "org.koin:koin-androidx-scope:$koin_version",\n            koinAndroidXViewModel   : "org.koin:koin-androidx-viewmodel:$koin_version",\n            koinAndroidXFragment    : "org.koin:koin-androidx-fragment:$koin_version",\n            koinAndroidXExperimental: "org.koin:koin-androidx-ext:$koin_version",\n            moshi                   : "com.squareup.moshi:moshi-kotlin:$moshi_version",\n            moshiKapt               : "com.squareup.moshi:moshi-kotlin-codegen:$moshi_version",\n            moshiAdapters           : "com.squareup.moshi:moshi-adapters:$moshi_version",\n            lifecycleRuntime        : "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version",\n            lifecycleExtensions     : "androidx.lifecycle:lifecycle-extensions:$lifecycle_version",\n            pagingCommon            : "androidx.paging:paging-common-ktx:$paging_version",\n            pagingRuntime           : "androidx.paging:paging-runtime-ktx:$paging_version",\n            pagingRxJava            : "androidx.paging:paging-rxjava2-ktx:$paging_version",\n            flipper                 : "com.facebook.flipper:flipper:$flipper_version",\n            flipperNetworkPlugin    : "com.facebook.flipper:flipper-network-plugin:$flipper_version",\n            soloader                : "com.facebook.soloader:soloader:0.5.1",\n            navigationRuntime       : "androidx.navigation:navigation-runtime-ktx:$nav_version",\n            navigationUI            : "androidx.navigation:navigation-fragment-ktx:$nav_version",\n            navigationFragment      : "androidx.navigation:navigation-ui-ktx:$nav_version",\n            room                    : "androidx.room:room-runtime:$room_version",\n            roomKtx                 : "androidx.room:room-ktx:$room_version",\n            rxRoom                  : "androidx.room:room-rxjava2:$room_version",\n            roomAnnotation          : "androidx.room:room-compiler:$room_version"\n        ]\n    }\n\n    repositories {\n        google()\n        jcenter()\n    }\n\n    dependencies {\n        classpath \'com.android.tools.build:gradle:4.0.0\'\n        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"\n        classpath "com.google.gms:google-services:4.3.3"\n        classpath "com.google.firebase:firebase-crashlytics-gradle:2.1.1"\n        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"\n        classpath "io.realm:realm-gradle-plugin:$realm_version"\n        classpath \'com.google.firebase:perf-plugin:1.3.1\'\n    }\n}\n\nallprojects {\n    repositories {\n        google()\n        jcenter()\n        mavenCentral()\n        maven { url \'https://jitpack.io\' }\n    }\n}\n\ntask clean(type: Delete) {\n    delete rootProject.buildDir\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

应用程序等级:

\n\n
apply plugin: \'com.android.application\'\napply plugin: \'com.google.gms.google-services\'\napply plugin: \'kotlin-android\'\napply plugin: \'kotlin-android-extensions\'\napply plugin: \'kotlin-kapt\'\napply plugin: \'com.google.firebase.crashlytics\'\napply plugin: "androidx.navigation.safeargs.kotlin"\napply plugin: \'realm-android\'\napply plugin: \'com.google.firebase.firebase-perf\'\n\nandroid {\n    ...\n\n    defaultConfig {\n        ...\n        multiDexEnabled true\n        ...\n    }\n}\n\ndependencies {\n    ...\n    implementation \'com.android.support:multidex:1.0.3\'\n\n    releaseImplementation \'com.google.firebase:firebase-analytics:17.4.2\'\n    releaseImplementation \'com.google.firebase:firebase-crashlytics:17.0.0\'\n    releaseImplementation \'com.google.firebase:firebase-perf:19.0.7\'\n\n    implementation \'com.google.firebase:firebase-messaging:20.2.0\'\n    implementation \'com.google.firebase:firebase-ml-vision:24.0.3\'\n    implementation \'com.google.firebase:firebase-ml-vision-barcode-model:16.1.1\'\n    ...\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Dra*_*ire 8

包含所有或删除所有这些

构建 Gradle(应用程序名称)

dependencies {
    classpath 'com.google.firebase:perf-plugin:1.3.4'
}
Run Code Online (Sandbox Code Playgroud)

构建 Gradle(:应用程序)

在页面顶部

apply plugin: 'com.google.firebase.firebase-perf'
Run Code Online (Sandbox Code Playgroud)

然后

dependencies {
    implementation 'com.google.firebase:firebase-perf:19.1.0'
}
Run Code Online (Sandbox Code Playgroud)


Nik*_*ron 0

最新版本的 firebase 工作完美。这是示例:

依赖项:

implementation platform('com.google.firebase:firebase-bom:28.2.1')
releaseImplementation 'com.google.firebase:firebase-analytics-ktx'
releaseImplementation 'com.google.firebase:firebase-crashlytics-ktx'
releaseImplementation 'com.google.firebase:firebase-perf-ktx'
Run Code Online (Sandbox Code Playgroud)