title: Firebase android performance NoClassDefFoundError -> FirebasePerfUrlConnection
body: <p>Does anyone face the same problem? After adding firebase performance to project error occurs immediately after starting the application. It is crashing only in debug build, in release build everything works as expected. Maybe someone has real answer because all I found in similar questions was juggling library versions by trial and error method. Multidex is turned ON.</p>
  
  <p>Error:</p>
  
  <pre><code>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) 
  </code></pre>
  
  <p>Buildscript:</p>
  
  <pre><code>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
  }
  </code></pre>
  
  <p>App gradle:</p>
  
  <pre><code>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'
      ...
  }
  </code></pre>