Как не запутывать имена классов, но в любом случае получить правильное симплен-имя?
У меня есть более 20 фрагментов, которые простираются от MyFragment, например:
LoginFragment extends MyFragment
UploadFragment extends MyFragment
CameraFragment extends MyFragment
- так далее..
а также MyFragment
в свою очередь простирается от Fragment
, Так что в моем приложении для Android, и всякий раз, когда я раздуваю одно из них, я вызываю в своем абстрактном классе 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()
после того как это было запутано?
1 ответ
Я использовал
-keepnames class * extends com.you.package.name.MyFragment
распаковал aar и classes.jar и проверил forlder сборки на наличие seed.txt и mapping.txt, чтобы увидеть запутывание
Добавьте ниже в ваш конфигурационный файл proguard.
-keep,allowobfuscation class * extends com.you.package.name.MyFragment