Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RxJava 2.2.13 Proguard issue #6670

Closed
G00fY2 opened this issue Oct 14, 2019 · 5 comments
Closed

RxJava 2.2.13 Proguard issue #6670

G00fY2 opened this issue Oct 14, 2019 · 5 comments

Comments

@G00fY2
Copy link

G00fY2 commented Oct 14, 2019

After updating to RxJava 2.2.13 we get the following proguard warnings and the build fails:

Warning: org.reactivestreams.FlowAdapters$FlowPublisherFromReactive: can't find superclass or interface java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find superclass or interface java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscriber: can't find superclass or interface java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscription: can't find superclass or interface java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowPublisherFromReactive: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$FlowPublisherFromReactive: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowPublisherFromReactive: can't find referenced class java.util.concurrent.Flow
Warning: org.reactivestreams.FlowAdapters$FlowPublisherFromReactive: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowPublisherFromReactive: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowPublisherFromReactive: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowPublisherFromReactive: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowPublisherFromReactive: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscriber: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscriber: can't find referenced class java.util.concurrent.Flow
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscriber: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscriber: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscription: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$FlowToReactiveSubscription: can't find referenced class java.util.concurrent.Flow
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$ReactivePublisherFromFlow: can't find referenced class java.util.concurrent.Flow$Publisher
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowProcessor: can't find referenced class java.util.concurrent.Flow$Processor
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscriber: can't find referenced class java.util.concurrent.Flow$Subscriber
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscription: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscription: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscription: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscription: can't find referenced class java.util.concurrent.Flow
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscription: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscription: can't find referenced class java.util.concurrent.Flow$Subscription
Warning: org.reactivestreams.FlowAdapters$ReactiveToFlowSubscription: can't find referenced class java.util.concurrent.Flow$Subscription

I assume it's because of the changes from Reactive Streams 1.0.3:

FlowAdapters artifact removed, FlowAdapters moved into the core jar reactive-streams/reactive-streams-jvm#424

Any advice on how to fix Proguard?

@akarnokd
Copy link
Member

You may suppress the warning apparently, one of these could work:

-dontwarn org.reactivestreams.FlowAdapters
-dontwarn org.reactivestreams.**
-dontwarn java.util.concurrent.flow.**
-dontwarn java.util.concurrent.**

@akarnokd
Copy link
Member

I'm not sure what else we could do. This is a problem with the RS library but I don't think they know or consider ProGuard & Android environment issues.

@vanniktech
Copy link
Collaborator

Can't remember where I posed but R8 is complaining too:

R8: Missing class: java.util.concurrent.Flow$Subscription
R8: Missing class: java.util.concurrent.Flow$Publisher
R8: Missing class: java.util.concurrent.Flow$Processor
R8: Missing class: java.util.concurrent.Flow$Subscriber

Let's ship rules so R8 can read them.

@akarnokd
Copy link
Member

akarnokd commented Nov 7, 2019

Okay, but I don't know how to setup gradle to include a file in the META-INF/proguard directory. Also it is unclear what the filename should be based on the tweet.

@vanniktech
Copy link
Collaborator

I believe it's as simple as this:

diff --git a/src/main/resources/META-INF/proguard/rxjava2.pro b/src/main/resources/META-INF/proguard/rxjava2.pro
new file mode 100644
index 000000000..b9994780a
--- /dev/null
+++ b/src/main/resources/META-INF/proguard/rxjava2.pro
@@ -0,0 +1,2 @@
+# Reactive Stream specification is bringing them but not using them.
+-dontwarn java.util.concurrent.Flow
\ No newline at end of file

I wanted to submit a PR but RxJava does not work with Gradle 5.x and the Gradle Wrapper 4.x that is being used does not like my Java 11 version 🤷‍♂️
Hence I can't verify it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants