如何修复ProGuard规则第88行的语法错误?
修复ProGuard规则中的语法错误
这个问题我之前碰到过好几次,是典型的ProGuard语法规则遗漏导致的错误。你写的第88行-keep com.app.app.utils.custom_view.** { *;}缺少了类型声明,ProGuard需要明确知道你要保留的是类、接口还是枚举,所以才会抛出“期望[!]interface|@interface|class|enum”的报错。
正确的写法分三种情况,你可以根据需求选择:
- 如果要保留这个包下所有类、接口和内部类,最常用的写法是加上
class:-keep class com.app.app.utils.custom_view.** { *; } - 要是只需要保留这个包下的接口,就换成
interface:-keep interface com.app.app.utils.custom_view.** { *; } - 如果目标是保留枚举类,就用
enum:-keep enum com.app.app.utils.custom_view.** { *; }
简单来说,-keep后面必须紧跟类型关键字,这是ProGuard的强制语法要求,不能省略。修改之后重新编译生成APK,这个错误应该就消失了。
内容的提问来源于stack exchange,提问作者Hesika
相关产品推荐
相关产品推荐

