Android Proguard-在保留外部包的同时混淆内部包

Android Proguard-在保留外部包的同时混淆内部包,android,proguard,obfuscation,android-proguard,android-productflavors,Android,Proguard,Obfuscation,Android Proguard,Android Productflavors,我正在开发一个android应用程序,它使用我自己的定制框架/jar/SDK。假设SDK包名为com.vrs.fm,在这个主包中,没有N个子包和类。由于历史原因,我的应用程序包是com.vrs.app 在我的自定义vrsSDK上启用proguard时,我需要将类保存在packagecom.vrs下,因此我添加了以下proguard规则 -dontwarn com.vrs.** -keep class com.vrs.** { *; } 这使得我的应用程序代码也不模糊 现在我想知道是否有任何方

我正在开发一个android应用程序,它使用我自己的定制框架/jar/SDK。假设SDK包名为
com.vrs.fm
,在这个主包中,没有N个子包和类。由于历史原因,我的应用程序包是
com.vrs.app

在我的自定义
vrs
SDK上启用proguard时,我需要将类保存在package
com.vrs
下,因此我添加了以下proguard规则

 -dontwarn com.vrs.**
-keep class com.vrs.** { *; }
这使得我的应用程序代码也不模糊


现在我想知道是否有任何方法/规则,我可以混淆
com.vrs.app
包下的类,但将类保留在
com.vrs.fm

下。您可以使用排除规则排除某些子包:

-keep class !com.vrs.app.**, com.vrs.** { *; }
如果com.vrs.app中仍有某些部分需要明确保留,则可以根据需要添加其他保留规则,如下所示:

-keep class com.vrs.app.xxx.yyy { xxx; }

您可以使用排除规则排除某些子包:

-keep class !com.vrs.app.**, com.vrs.** { *; }
如果com.vrs.app中仍有某些部分需要明确保留,则可以根据需要添加其他保留规则,如下所示:

-keep class com.vrs.app.xxx.yyy { xxx; }

-上课!com.vrs.app.*,com.vrs.*{;}不工作。然而,保持课堂秩序!com.vrs.app.*,com.vrs.*{*;}正在工作,但仅混淆com.vrs.app下的类,而不是子包com.vrs.app.XXX。您是否使用了与答案中完全相同的规则?如果它不起作用,我会感到惊讶。检查您是否没有其他可能保留com.vrs.app.**的规则。是的,我使用了与答案中相同的规则。可能我文件中的其他proguard规则会阻止它-继续上课!com.vrs.app.*,com.vrs.*{;}不工作。然而,保持课堂秩序!com.vrs.app.*,com.vrs.*{*;}正在工作,但仅混淆com.vrs.app下的类,而不是子包com.vrs.app.XXX。您是否使用了与答案中完全相同的规则?如果它不起作用,我会感到惊讶。检查您是否没有其他可能保留com.vrs.app.**的规则。是的,我使用了与答案中相同的规则。我文件中的其他proguard规则可能会阻止它。