Dav*_*uan 55 java android proguard
我的android程序有一个class A,有两个static inner class.发现它们.dex在应用proguard后被剥离.
public class A{
...
static class B{
...
}
static class C{
...
}
}
Run Code Online (Sandbox Code Playgroud)
我在proguard.flags中添加了以下几行,但似乎没有运气.
-keep class com.xxx.A
-keep class com.xxx.A$*
Run Code Online (Sandbox Code Playgroud)
任何提示?
Ale*_*cas 63
尝试添加InnerClasseskeep属性.例如:
-keepattributes Exceptions, InnerClasses, ...
Run Code Online (Sandbox Code Playgroud)
另外,尝试使用星号向"保持"调用添加正文,如下所示:
-keep class com.xxx.A$* {
*;
}
Run Code Online (Sandbox Code Playgroud)
ajm*_*jma 42
这是我必须为我的配置做的事情
-keep class com.xxx.A { *; }
-keep class com.xxx.A$B { *; }
-keep class com.xxx.A$C { *; }
Run Code Online (Sandbox Code Playgroud)
Gam*_*tes 10
这对我有用
-keepattributes InnerClasses
-keep class com.yourpackage.YourClass**
-keepclassmembers class com.yourpackage.YourClass** {
*;
}
Run Code Online (Sandbox Code Playgroud)
这可能与通配符有点过分,但我想确保我没有错过任何东西.主要的是你需要保持类的InnerClasses属性和类上的keepclassmembers.
如果你不希望某些包中的所有内部类和成员被混淆,你可以在proguard-rules.pro中添加行.
-keep class com.xxx.task.*$* {
*;
}
Run Code Online (Sandbox Code Playgroud)
您的配置看起来正确。您应该仔细检查您没有拼写错误的类名。如果拼写错误,ProGuard应该打印出有关它的注释。您还可以指定-printseeds seeds.txt,然后查看您的类是否在结果文件中列出。如果列出了这些类,则这些类也在处理后的代码中。
正如Alexander Lucas所提到的,您可能还希望保留这些类的字段和方法-这取决于您的要求。
| 归档时间: |
|
| 查看次数: |
33040 次 |
| 最近记录: |