minifyEnabled=false 构建成功,minifyEnabled=false 构建失败
构建 debugApk 成功,但构建 releaseApk 失败
请帮帮我,我找不到问题
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)
...
最佳答案
我在使用 RxJava3 版本时遇到了这种现象。 3.0.6也是如此。
原因是 R8 尝试删除该方法并将其内联到单个调用站点。
请参阅https://developer.android.com/studio/build/shrink-code详细。
因此,如果我们的应用从多个位置调用 RunnableDisposable.constructor
,则不会发生此问题。
我的意思是,如果使用两种或多种 RunnableDisposable
扩展类,我们就不会遇到此问题。
解决方法是简单地添加以下混淆规则。
-keep class io.reactivex.rxjava3.disposables.RunnableDisposable { <init>(...); }
关于Android R8 构建发布 Apk 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63948856/