Я использую dexguard 6.0.26, чтобы запутать библиотеку Android.В конфигурационном файле у меня есть следующие опции
-android
-zipalign 4
-include E:\\DexGuard6.0.26\\lib\\dexguard-assumptions.pro
-dontoptimize
-dontshrink
-dontusemixedcaseclassnames
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
-dontskipnonpubliclibraryclasses
Наряду с обычными keep опциями для моих классов.Сборка библиотеки и мое приложение, которое использует библиотеку, прекрасно работает на многих устройствах, но на некоторых устройствах (например, asus zenpad 3s 10 z500kl, android 7.0) происходит странное поведение
- Код библиотеки используетАлгоритм хеширования MD5 и на неисправных устройствах я получаю сообщение об ошибке java.security.NoSuchAlgorithmException: MD5 MessageDigest недоступно , в строке MessageDigest.getInstance ("MD5 "); , но на других устройствах приложение работает нормально.
- Некоторые блоки кода, например if..else , полностью пропускаются / игнорируются даже после декомпиляцииобфусцированный jar Я вижу блок кода в файле класса !!
Просто чтобы убедиться, добавлю ли опцию dexguard -dontobfuscate и повторно-создай мой фляга, приложение теперь отлично работает на всех устройствах, включая планшет asus, так что я точно знаю, что запутывание делает здесь что-то сумасшедшее.
Кто-нибудь когда-либо сталкивался с этой проблемой и сумел решить ее?Любая помощь / советы будут оценены.