S Pen多窗口SDK Proguard规则

时间:2013-02-02 20:00:22

标签: android proguard multi-window

使用带有S Pen SDK Multi-Window jar(2.2.5)的proguard构建和安装Android项目时,我收到以下两个警告:

[proguard] Warning: android.sec.multiwindow.Constants$WindowManagerPolicy: can't find referenced class android.view.WindowManagerPolicy
[proguard] Warning: android.sec.multiwindow.MultiWindowManager: can't find referenced method 'java.util.List getRunningTasks(int,int,android.app.IThumbnailReceiver)' in class android.app.ActivityManager

通过在我的proguard配置文件中添加以下行,我能够成功运行proguard:

-dontwarn android.sec.multiwindow.**

然而,我对忽略警告感到有点不舒服。在这种情况下,警告引用android.jar中的类和方法,因此它们将在运行时出现。

我想知道是否还包括proguard规则是好的:

-keep class android.sec.multiwindow.** { *; }

在这种情况下它似乎不会影响构建,但它似乎是一个好主意。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

类和方法可能存在于Android运行时中,但由于@hide标记(因此它们未被认可为公共API),因此它们不存在于android.jar中。如果它与-dontwarn一起使用,那是可以接受的。更清晰的解决方案是创建一个包含此类,字段和方法的android.jar版本。

-keep选项并不会真正影响问题。你可以把它留下来。