2016-09-16 45 views
4

當涉及到flexjson庫時,我遇到了使用dexguard的問題。嘗試使用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在Android發佈apks混淆後正常工作?

與gson lib類似的東西。

回答

2

很可能這是在三星設備上 - 少數設備型號和Android版本在使用某些UTF-8編碼的unicode字符時遇到問題。您應該嘗試將DexGuard更新爲最新版本。否則,您還可以嘗試使用簡單的混淆字典來解決該問題:

-classobfuscationdictionary empty.txt 

其中empty.txt是一個空文件。

+0

即使在添加最新的jar之後,它仍然失敗。你的建議幾乎解決了我的問題!謝謝!你能解釋一下這項工作在做什麼? – joseporto

+0

這是在未來版本中修復的嗎? – joseporto

+0

解決方法避免使用unicode字符的類名稱,這些字符有些Samsung設備無法正確處理。 –

1

我們在少數三星設備(Android 5.1.1上的Galaxy J1和J5)上遇到了同樣的問題。應用程序不會啓動。

在Crashlytics和Google Play中沒有關於此問題的信息。最終我們與GuardSquare聯繫過,後者告訴我們要更新到新鮮的DexGuard 8.0.06。該版本包含一個新的字典,可解決這些設備上的ANR。

使用下面的行作爲Eric提到的作品。雖然這隻會使用ASCII字符作爲他提到的一個同學。我剛纔問過是否有使用這個缺點。因爲它可能會避免未來的問題。

-classobfuscationdictionary empty.txt 
+0

剛剛得到了關於ASCII與unicode問題的回覆:「使用UTF-8字符是使黑客更難以閱讀和理解混淆代碼的另一個額外難點:識別和記憶隨機UTF-8類名稱更加困難而不是ASCII類名,除此之外,與混淆視點沒有區別。「 –

相關問題