使用带有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.** { *; }
在这种情况下它似乎不会影响构建,但它似乎是一个好主意。
有什么想法吗?
答案 0 :(得分:2)
类和方法可能存在于Android运行时中,但由于@hide标记(因此它们未被认可为公共API),因此它们不存在于android.jar中。如果它与-dontwarn一起使用,那是可以接受的。更清晰的解决方案是创建一个包含此类,字段和方法的android.jar版本。
-keep选项并不会真正影响问题。你可以把它留下来。