2016-09-16 2 views
4

flexjson 라이브러리의 경우 dexguard를 사용하는 데 문제가 있습니다. JSONDeserializer를 사용하여 deserialize 할 때 다음 오류가 계속 발생합니다.Flexjson 및 Dexguard/Proguard

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

안드로이드 출시 apk에서 난독 화 후에 flexjson에 대한 적절한 규칙이 있습니까?

gson lib와 비슷한 점.

답변

2

일부 장치 모델 및 Android 버전에서 일부 UTF-8 인코딩 된 유니 코드 문자에 문제가있는 것으로 나타났습니다. DexGuard를 최신 버전으로 업데이트해야합니다. 그렇지 않으면 간단한 난독 화 사전을 사용하여 문제를 해결할 수도 있습니다.

-classobfuscationdictionary empty.txt 

여기서 empty.txt는 빈 파일입니다.

+0

최신 항아리를 추가 한 후에도 여전히 실패했습니다. 귀하의 제안은 제 문제를 거의 해결했습니다! 감사! 이 일이 무엇을하고 있는지 설명해 주시겠습니까? – joseporto

+0

이것은 향후 릴리스에서 수정 되었습니까? – joseporto

+0

해결 방법은 일부 Samsung 장치가 올바르게 처리하지 않는 유니 코드 문자로 클래스 이름을 피할 수 있습니다. –

1

몇 가지 삼성 기기 (Android 5.1.1의 Galaxy J1 및 J5)에서 동일한 문제가 발생했습니다. 응용 프로그램이 시작되지 않습니다.

크래시 틱스 또는 Google Play 문제에 대한 정보가 없습니다. 결국 우리는 새로운 DexGuard 8.0.06으로 업데이트하라는 GuardSquare의 연락을 받았습니다. 이 버전에는 이러한 장치에서 ANR을 해결하는 새로운 사전이 포함되어 있습니다.

에릭 (Eric)이 언급 한 줄을 아래에 사용하면 효과가 있습니다. 이것은 ASCII 문자를 언급 한 동료로만 사용합니다. 나는 이것을 사용하는데 어떤 단점이 있는지 물어 보았다. 왜냐하면 미래의 문제를 피할 수 있기 때문입니다.

-classobfuscationdictionary empty.txt 
+0

ASCII 코드와 유니 코드 질문에 대한 답변을 얻었습니다. "UTF-8 문자를 사용하면 해커가 난독 화 코드를 읽고 이해하기가 어려워집니다. 임의의 UTF-8 클래스 이름을 인식하고 기억하기가 더 어렵습니다. ASCII 클래스 이름보다. 난독 화 관점과 다른 점은 없습니다. " –