当minimyEnabled设置为true时,Rxjava3未按预期工作



当我将build.gradle中的minifyEnabled设置为true时,当我正确地查看日志和API响应时,rxjava3似乎突然无法按预期工作。

所以我所做的就是创建一个空的新项目。

  1. 导入Rxjava3(3.0.13(:implementation "io.reactivex.rxjava3:rxjava:3.0.13"

  2. 已将构建类型更改为:

buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
  1. 将MainActivity.java的onCreate函数更改为:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Simply give me "Test"
Single.just("Test")
.subscribe(new SingleObserver<String>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onSuccess(@NonNull String s) {
Log.d("TAG", s); // (s expect: "Test", get: null)
}
@Override
public void onError(@NonNull Throwable e) {
}
});
}
  1. 在onSuccess中设置断点,然后连接设备并按debug
  2. 在onSuccess中,您将获得null而不是";测试">

如果将调试的minimyEnabled切换回false,它将按预期工作。我还在proguard-rules.pre文件中添加了这些行:

##---------------Begin: proguard configuration for rxjava  ----------
-dontwarn java.util.concurrent.Flow*
##---------------End: proguard configuration for rxjava  ----------

它不起作用。

有人能给我指明从这里出发的路吗?提前谢谢。

试着在Proguard中添加它。

-dontwarn java.util.concurrent.**

相关内容

  • 没有找到相关文章

最新更新