在gradle中将minifyEnabled设置为true时,RXJava订阅方法将引发NullPointerException

时间:2019-10-02 11:07:07

标签: android gradle rx-java androidx

升级某些库后,当minifyEnabled设置为true时,subscribe()方法将引发NullPointerException。如果我删除minifyEnabled,则代码工作正常。基本上,将空数据解析为订阅方法。升级gradle之前没有任何问题。有人遇到过这个问题吗?

下面是有问题的代码。该ID将为null。同样,升级之前不是这种情况,只有在gradle中将minifyEnabled设置为true时才会发生。

    DataService.INSTANCE
         .getId()
         .subscribeOn(Schedulers.io())
         .observeOn(AndroidSchedulers.mainThread())
         .subscribe(
             id -> {
               goToView(context, id);
             },
             t -> {
               L.e("Exception happened", t);
             }
         )

下面是一些环境

  1. Android Studio v 3.5
  2. V5.4.1版
  3. Android Gradle插件3.5.0
  4. android.useAndroidX = true

RXJava版本:

    implementation "io.reactivex.rxjava2:rxjava:2.2.12
    implementation "io.reactivex.rxjava2:rxandroid:2.1.1
    implementation "com.jakewharton.rxbinding2:rxbinding:2.2.0
    implementation "com.jakewharton.rxrelay2:rxrelay:$rootProject.ext.rx2Relay"
    implementation "com.squareup.retrofit2:adapter-rxjava2:2.1.1

Gradle Config

            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

0 个答案:

没有答案