簡體   English   中英

Proguard警告:在Observable上找不到引用的類

[英]Proguard Warning: can't find referenced class on Observable

當我使用Proguard進行構建時,我在Observable上收到“在Observable上找不到引用的類”警告。

但是我在很多地方都使用了Observable,但是警告只指向下面的代碼。

viewModel.data.observe(this, Observer<Boolean> {

    // Warning: can't find referenced class
    Single.fromCallable {
        updateSomething()
    }
    .delay(2, TimeUnit.SECONDS)
    .subscribe({}, {
        it.printStackTrace()
    })
})

也許與ViewModel有關嗎? 如果我注釋掉“ Single.fromCallable ...”塊,則可以在沒有任何警告的情況下進行構建。

我該如何解決這個問題?

[編輯]我當前的proguard-rules.pro

############################################################
## Retrofit2
############################################################
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-dontwarn javax.annotation.**
-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}

############################################################
## okhttp3
############################################################
-dontwarn okhttp3.**
-dontwarn okio.**

############################################################
## For picasso
############################################################
-dontwarn com.squareup.okhttp.**

############################################################
## For com.caverock:androidsvg
############################################################
-dontwarn com.caverock.androidsvg.**

############################################################
## For Gson
############################################################
-keep class com.google.** {*;}
-keep interface com.google.** {*;}

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }

# Prevent proguard from stripping interface information from TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

############################################################
## For NonSwipeableViewPager
############################################################
-keep class android.support.v4.view.ViewPager { *; }

############################################################
## For RxJava
############################################################
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
   long producerIndex;
   long consumerIndex;
}

-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode producerNode;
}

-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode consumerNode;
}

-dontnote rx.internal.util.PlatformDependent

錯誤消息,

警告:com.test / view.list.PhotoListFragment $ observeUpdates $ 2 $ 1 $ 1 $ 3:找不到引用的類com.test / view.list.PhotoListFragment $ observeUpdates $ 2 $ 1警告:com.test / view.list.PhotoListFragment $ observeUpdates $ 2 $ 1 $ 1 $ 3:找不到引用的類com.test / view.list.PhotoListFragment $ observeUpdates $ 2 $ 1警告:com.test / view.list.PhotoListFragment $ observeUpdates $ 2 $ 1 $ 1 $ 4:找不到引用的類com。 test / view.list.PhotoListFragment $ observeUpdates $ 2 $ 1警告:com.test / view.list.PhotoListFragment $ observeUpdates $ 2 $ 1 $ 1 $ 4:找不到引用的類com.test / view.list.PhotoListFragment $ observeUpdates $ 2 $ 1

watchUpdates()方法包含以上代碼。

您可以嘗試在Proguard中保持這一行:

-keepnames class rx.Single



 #rxjava
-keep class rx.schedulers.Schedulers {
    public static <methods>;
}
-keep class rx.schedulers.ImmediateScheduler {
    public <methods>;
}
-keep class rx.schedulers.TestScheduler {
    public <methods>;
}
-keep class rx.schedulers.Schedulers {
    public static ** test();
}

-keep class rx.internal.util.unsafe.** {
    *;
}
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
    long producerIndex;
    long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    long producerNode;
    long consumerNode;
}

暫無
暫無

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

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