Reputation: 21
minifyEnabled=false build success,minifyEnabled=false build fail
build debugApk is success but build releaseApk is fail
please help me,I can't find the problem
FORCE inlining on non-inlinable: void io.reactivex.rxjava3.disposables.RunnableDisposable.constructor$io$reactivex$rxjava3$disposables$ReferenceDisposable(java.lang.Object)
Stack trace:
com.android.tools.r8.errors.a: FORCE inlining on non-inlinable: void io.reactivex.rxjava3.disposables.RunnableDisposable.constructor$io$reactivex$rxjava3$disposables$ReferenceDisposable(java.lang.Object)
at com.android.tools.r8.ir.conversion.O.b(:57)
at com.android.tools.r8.ir.conversion.O.a(:390)
at com.android.tools.r8.ir.conversion.O.a(:336)
at com.android.tools.r8.utils.U0.a(:10)
...
[CIRCULAR REFERENCE:com.android.tools.r8.errors.a: FORCE inlining on non-inlinable: void io.reactivex.rxjava3.disposables.RunnableDisposable.constructor$io$reactivex$rxjava3$disposables$ReferenceDisposable(java.lang.Object)]
Caused by: com.android.tools.r8.errors.b: FORCE inlining on non-inlinable: void io.reactivex.rxjava3.disposables.RunnableDisposable.constructor$io$reactivex$rxjava3$disposables$ReferenceDisposable(java.lang.Object)
at com.android.tools.r8.graph.T.a(:42)
...
Upvotes: 2
Views: 562
Reputation: 31
I encountered this phenomena with RxJava3 ver. 3.0.6, too.
The cause is that R8 tries to remove the method and inline it at the single call site.
See https://developer.android.com/studio/build/shrink-code in detail.
So, if our app calls RunnableDisposable.constructor
from multiple places, this issue doesn't happen.
I mean that if two or more kinds of extended classes of RunnableDisposable
are used, we don't encounter this issue.
And the workaround is adding the following proguard rule simply.
-keep class io.reactivex.rxjava3.disposables.RunnableDisposable { <init>(...); }
Upvotes: 3