簡體   English   中英

當 minifyEnabled 設置為 true 時,Rxjava3 無法按預期工作

[英]Rxjava3 not working as expected when minifyEnabled set to true

當我將 build.gradle 中的 minifyEnabled 設置為 true 時,似乎 rxjava3 突然無法按預期工作,當我通過日志 go 和 API 響應正確時。

所以我要做的是創建一個空的新項目。

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

  2. 將 buildTypes 更改為:

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 function 更改為以下內容:
 @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 中設置斷點,然后連接設備並按調試。
  2. 在 onSuccess 中,您將獲得 null 而不是“測試”。

如果將調試的 minifyEnabled 切換回 false,它將按預期工作。 我還在 proguard-rules.pre 文件中添加了這些行:

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

那沒起效。

有人可以從這里告訴我一些通往 go 的方法嗎? 先感謝您。

嘗試在 Proguard 中添加它。

-dontwarn java.util.concurrent.**

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM