Proguard:将类保存在某个包中



我有一些通过反射使用的类。似乎ProGuard正在删除这些当我构建发布。

是否有任何方法可以指定在ProGuard运行时不删除特定包中的所有类(而不是特定的类名)?需要注意的是,需要混淆。另一个注意事项是,所有这些类都扩展了现有的单个类。

谢谢

使用-keep class com.yourpackage.name.** { *; }在我的情况下工作得很好。它本质上使用通配符来保留属于该包的所有类。还要注意*;是必需的。

另外,为了帮助调试你的问题,你应该检查生成的seeds.txt,如果类被包含,那么它被保留。

此外,它可能是使用公共静态内部类之类的另一个问题。最好的调试方法是使用dex2jar和JD-GUI反编译缩小的apk,并手动浏览代码,看看哪些被删除或保留了。

您是否尝试在proguard-rules.pro文件中添加这行?

-keep class com.company.application.PackagePrefix* 
{
*;
}

如果你不想使用包前缀,你可以使用**代替。

希望能有所帮助。

相关内容

  • 没有找到相关文章

最新更新