2016-09-16 1 views
4

У меня возникли проблемы с использованием dexguard, когда дело доходит до библиотеки flexjson. При попытке десериализации с помощью JSONDeserializer я получаю следующую ошибку.Flexjson и Dexguard/Proguard

**09-15 20:46:10.271 10901-11552/** **A/art: sart/runtime/class_linker.cc:3430] Check failed: klass->IsProxyClass()** 

У кого-нибудь есть правильные правила для правильной работы flexjson после обфускации в андроидных версиях apks?

Нечто похожее на gson lib.

ответ

2

Скорее всего, это устройство Samsung - некоторые модели устройств и версии для Android имеют проблемы с кодированными символами Юникода, кодированными UTF-8. Вы должны попробовать обновить DexGuard до последней версии. В противном случае, вы можете также попробовать работать вокруг него, используя простой словарь запутывания:

-classobfuscationdictionary empty.txt 

где empty.txt пустой файл.

+0

Даже после добавления их последней банки все еще не удалось. Ваше предложение в значительной степени решило мою проблему! благодаря! Можете ли вы объяснить, что делает эта работа? – joseporto

+0

Это исправлено в будущих выпусках? – joseporto

+0

Обходное решение позволяет избежать имен классов с символами Unicode, которые некоторые устройства Samsung не обрабатывают должным образом. –

1

У нас была такая же проблема на нескольких устройствах Samsung (Galaxy J1 и J5 на Android 5.1.1). Приложение просто не запускалось.

Информация о проблеме отсутствует в Crashlytics или в Google Play. В конце концов мы связались с GuardSquare, который сказал нам обновиться до нового DexGuard 8.0.06. Эта версия включает в себя новый словарь, который решает ANR на этих устройствах.

Используя приведенную ниже линию, как упоминает Эрик, также работает. Хотя это будет использовать только символы ASCII, как упомянутые им коллеги. Я только что спросил, есть ли недостатки в использовании этого. Потому что это может избежать будущих проблем.

-classobfuscationdictionary empty.txt 
+0

Только что получил ответ на вопрос ASCII vs unicode: «Использование символов UTF-8 - еще одна сложность, затрудняющая хакерам читать и понимать обфускационный код: сложнее распознать и запомнить случайные имена классов UTF-8 чем имена классов ASCII. Кроме этого, нет отличий от точки зрения обфускации ». –

Смежные вопросы