Android R8 构建发布 Apk 失败

标签 android android-build

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/

相关文章:

java - 获取未读短信数量的更快方法?

安卓 Gradle : archive output directory in Jenkins

android-build - 如何更改 Android productFlavors 的根文件夹

Android Studio 3.0 中生成的 Android 版本构建无法安装

android - 禁用在editText android中输入

java - 如何获取 URL 以便能够将其传递给 Activity

android - 使用预装的谷歌地图而不是使用 Intents 自己的 Activity ?

android - 如何等待 Volley 响应完成然后执行下一个方法

android - 无法构建: How to add Android Build Config for new Module

android - react native : Android Debug build does't loads image assets from the react-native assets folder