1

我有 20 多个从 MyFragment 扩展而来的片段,例如:

  • LoginFragment extends MyFragment
  • UploadFragment extends MyFragment
  • CameraFragment extends MyFragment
  • ETC..

MyFragment又从延伸Fragment。因此,在我的 Android 应用程序中,每当我为其中一个应用程序充气时,我都会调用我的抽象类 a 来showFragment(MyFragment f)触发 Adjust 事件,

AdjustEvent event = new AdjustEvent(EVENT_LOAD_FRAGMENT);
// Add callback parameters to this parameter.
event.addCallbackParameter("LoadFragment", 
f.getClass().getSimpleName());
Adjust.trackEvent(event);

这样我就可以测量哪个片段被用作 kay 值对的频率。到目前为止一切顺利,在调试阶段它工作得很好。

正如您现在可以想象的那样,getClass().getSimpleName()在生产环境中被混淆了。我不想触及所有 20 个片段,如果这些类被混淆了就完全没问题了。但我仍然想获得班级的有效getSimpleName()字符串..

getSimpleName()混淆后如何获得有效的课程?

4

2 回答 2

1

我用了

-keepnames class  * extends com.you.package.name.MyFragment

解压 aar 和 classes.jar,并检查构建 forlder 中的 seed.txt 和 mapping.txt 以查看混淆

于 2018-12-04T08:32:48.517 回答
0

将以下内容添加到您的 proguard 配置文件中。

-keep,allowobfuscation class  * extends com.you.package.name.MyFragment
于 2018-11-27T05:14:35.713 回答