我有一些通过反射使用的类。当我构建发布时,ProGuard似乎正在删除它们。
是否有任何方法可以指定在ProGuard运行时不删除特定包中的所有类(与特定类名相对)。作为一个注释,需要混淆。另外注意,所有这些类都扩展了一个存在的类。
由于
答案 0 :(得分:0)
在我的案例中使用-keep class com.yourpackage.name.** { *; }
效果很好。它主要使用通配符来保留属于该包的所有类。另请注意,*;
是必需的。
另外,为了帮助调试您的问题,您应该检查生成的seeds.txt
,如果包含该类,则保留该类。
此外,它可能是另一个问题,如使用公共静态内部类等。调试的最佳方法是使用dex2jar和JD-GUI对缩小的apk进行反编译,并手动浏览代码以查看被剥离或保留的内容。不要忘记 - 之前不要进行混淆。
答案 1 :(得分:0)
您是否尝试在proguard-rules.pro
文件中添加此行?
-keep class com.company.application.PackagePrefix*
{
*;
}
如果您不想使用包装前缀,可以使用**
代替。
希望它有所帮助。