当我用R8构建我的应用程序时,我需要帮助解决这个问题。我有一个执行作业然后终止的服务。但是,当我使用R8而不是Proguard时,服务永远不会终止。让R8构建工作的唯一方法是留在android.util.Log类中,特别是注释掉这一部分:
-assumenosideeffects class android.util.Log {
public static *** v(...);
public static *** d(...);
public static *** i(...);
public static *** w(...);
public static *** e(...);
}有谁能解释一下R8到底在做什么,是什么导致了这种行为,或者能引导我朝着正确的方向前进吗?或者是假设副作用片段的问题?
发布于 2020-04-08 18:44:27
当你构建你的项目时,R8似乎删除了一些重要的代码。请将-printusage {output-dir}/usage.txt添加到您的proguard-rules.pro文件中,然后构建项目,然后检查文件usage.txt -它包含有关已删除代码的报告。现在,您可以尝试使用更多的自定义keep规则来解决此问题。
请参考此博客以获取R8 https://medium.com/better-programming/shrink-your-android-app-with-r8-afe17c4d393
https://stackoverflow.com/questions/60180675
复制相似问题