将EventBus库从proGuard迁移到R8会[CRASH]订阅者

问题描述 投票:0回答:1

这里是示例项目,使用最新工具R8时,证明EventBus使应用程序崩溃。默认情况下,Android Studio 3.6.1中启用了R8。由于已弃用ProGuard,因此不再使用。

Sample Project

我们如何解决使用R8保留@subscribe批注方法的问题?gradle文件:

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
    }

gradle.properties文件:

org.gradle.parallel=true

android.useAndroidX=true
android.enableJetifier=true

runProguard=false
gradle event-bus android-r8
1个回答
0
投票

首先,您不需要在gradle.properties文件中编写runProguard = false。您可以在build.gradle文件中使用minifyEnabled false


所以请删除它...似乎在构建项目时R8删除了一些重要的代码。请在您的proguard-rules.pro文件中添加-printusage {output-dir} /usage.txt,然后构建该项目,然后检查文件usage.txt-该文件包含有关已删除代码的报告。现在,您可以尝试使用更多自定义保留规则来解决此问题。
请为R8推荐此博客How to Shrink Your Android App With R8
© www.soinside.com 2019 - 2024. All rights reserved.