Если в вашей трассировке стека содержались имена и методы классов без указания аргументов, указанные в - сохраните в вашем proguard.cfg
, тогда ответ содержится в теле вашего вопроса ...
Также обратите внимание, что из-за проблем, связанных с отражением , ProGuard автоматически сохраняет следующее:
- Class.forName ( "SomeClass")
- SomeClass.class
- SomeClass.class.getField ( "SomeField")
- SomeClass.class.getDeclaredField ( "SomeField")
- SomeClass.class.getMethod ("someMethod", новый класс [] {})
- SomeClass.class.getMethod ("someMethod", новый класс [] {A.class})
- SomeClass.class.getMethod ("someMethod", новый класс [] {A.class, B.class})
- SomeClass.class.getDeclaredMethod ("someMethod", новый класс [] {})
- SomeClass.class.getDeclaredMethod ("someMethod", новый Class [] {A.class})
- SomeClass.class.getDeclaredMethod ("someMethod", новый класс [] {A.class, B.class})
- AtomicIntegerFieldUpdater.newUpdater (SomeClass.class, "someField")
- AtomicLongFieldUpdater.newUpdater (SomeClass.class, someField)
- AtomicReferenceFieldUpdater.newUpdater (SomeClass.class, SomeType.class, "someField")
Также обратите внимание , что, если вы каким-либо образом предоставите файл proguard/mapping.txt
, сгенерированный ProGuard, инструмент ReTrace сможет все запутать.
Короче говоря, вам не нужно ничего помещать в proguard.cfg, чтобы включить запутывание. Вариантов по умолчанию достаточно. Теоретически, вы можете захотеть удалить некоторые из параметров --keep по умолчанию, но в документации ProGuard определенно говорится, что:
Для получения правильных результатов вы должны хотя бы быть немного знакомы с
код, который вы обрабатываете. Запутывающий код, который выполняет много
Отражение может потребовать проб и ошибок , особенно без
Необходимая информация о внутренностях кода.