android - 混淆器不保留匿名类

标签 android proguard

我在运行时遇到错误:

Could not find class 'android.support.v7.widget.SearchView$5', referenced from method android.support.v7.widget.SearchView.addOnLayoutChangeListenerToDropDownAnchorSDK11

我试图通过这个 proguard 配置来保留这个类:

-keepattributes Exceptions,InnerClasses,Signature,Deprecated,
                SourceFile,LineNumberTable,*Annotation*,EnclosingMethod

-keep class android.support.v7.widget.SearchView { public *; }

-keep class android.support.v7.widget.SearchView$* {
    *;
}
-keep class android.support.v7.widget.SearchView** {
    *;
}

-keep class android.support.v7.widget.SearchView$5 {
    *;
}

但运气不好。这不是第一次 proguard 不通过配置保留成员,但这次我无法重写代码将匿名转换为内部类。

最佳答案

这对我有用(没有公开):

 -keep class android.support.v7.widget.SearchView { *; }

关于android - 混淆器不保留匿名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22616003/

相关文章:

android - 有什么方法可以指示 Proguard (在 Android 上)保存中间 jar 吗?

android - (Android) Proguard 找不到动态引用的类 javax.swing.*

android - 位置管理器删除更新权限

android - 通过模拟器设置温度

Java Ant - 如何传递 ProGuard 任务参数并在配置文件中使用它们?

android - Android Gradle插件:productFlavors中的runProguard?

java - 使用 ProGuard 混淆 GWT Web 应用程序

android - 从 SQLite 数据库表中删除所有表行

android - 加入具有相同主键但不同数据的两个表

android - 使用 layout/main.xml 文件将选项卡添加到 Android 应用程序