Android R8是一个代码混淆和压缩工具,可以将应用程序的大小和安全性优化。它引入了一些新功能,如成员内省、混淆指针、类内省等。
但R8使用起来一直不友好,因为自从使用R8之后编译问题不断。主要还是和混淆相关,经常报错,今天用compose开发应用又遇到一个,构建生产环境包的时候IDE报错提示如下:”
> Task :app:minifyDevReleaseWithR8
AGPBI: {"kind":"error","text":"Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in D:\\xx\\app\\build\\outputs\\mapping\\devRelease\\missing_rules.txt.","sources":[{}]}
Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in D:\code\AppCenter\app\build\outputs\mapping\devRelease\missing_rules.txt.
AGPBI: {"kind":"error","text":"Missing class org.slf4j.impl.StaticLoggerBinder (referenced from: void org.slf4j.LoggerFactory.bind() and 3 other contexts)","sources":[{}],"tool":"R8"}
> Task :app:minifyDevReleaseWithR8 FAILED
Missing class org.slf4j.impl.StaticLoggerBinder (referenced from: void org.slf4j.LoggerFactory.bind() and 3 other contexts)
解决方法也很简单:
复制提示中链接用txt打开”D:\\xx\\app\\build\\outputs\\mapping\\devRelease\\missing_rules.txt“,里面有对应的提示:
# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn org.slf4j.impl.StaticLoggerBinder
把混下规则添加到应用的混淆配置文件(proguard-rules.pro)中即可解决,
-dontwarn org.slf4j.impl.StaticLoggerBinder
-----------------------------------
©著作权归作者所有:来自51CTO博客作者wx5a3d0ad21ba8b的原创作品,请联系作者获取转载授权,否则将追究法律责任
Android编译解决:Missing classes detected while running R8.
https://blog.51cto.com/u_13546852/9194708