대륙의 실수
샤오미 미 밴드. (Mi Band) 이미 유명해서 많은 분들이 이용하고 계시는데요,
언제부터인지는 모르겠지만, 2016년 3월 들어 뜬금없이 죽는 현상이 있어서 분석 후 수정을 해보았습니다.
어떤 버그인지 궁금하네요...!
수정된 APK 다운로드 링크 (공식 앱이 아닙니다. 제가 임의로 만든 버전입니다):
https://drive.google.com/file/d/0B2OD_t15K157U1lKODVhVzBWaUU/view?usp=sharing
이슈: 실행 시 죽음.
FATAL EXCEPTION: main
Process: com.xiaomi.hm.health, PID: 10917
java.lang.IllegalArgumentException: Unknown pattern character 'Y'
at java.text.SimpleDateFormat.validatePatternCharacter(SimpleDateFormat.java:314)
at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:289)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:356)
at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:249)
at cn.com.smartdevices.bracelet.Utils.c(Unknown Source)
at cn.com.smartdevices.bracelet.chart.util.r.a(Unknown Source)
at cn.com.smartdevices.bracelet.ui.aA.b(Unknown Source)
at cn.com.smartdevices.bracelet.ui.aA.onResume(Unknown Source)
크래쉬 로그를 보니, 날짜 표시를 위해 SimpleDataFormat을 불러오는 부분에 문제가 있는 것 같습니다.
그래서 앱 내의 리소스를 확인해 보니... 한국어 스트링이 아래와 같이 되어 있더군요.
<string name="date_year_month">Yyyy mmm</string>
<string name="date_year_month_day">Yyyy MMM dd</string>
yyyy mmm 으로 들어가야하는 스트링이 Yyyy mmm으로 들어가 있습니다. (이건 정해져 있는 규칙입니다.)
즉, 대소문자가 잘못들어가 있습니다...... 그 말은 영문으로 실행시키면 잘 된다는 뜻?
역시, 폰의 언어를 영어로 변경하니 멀쩡히 동작하는데 한국어로 실행시키니 죽는군요. 이 무슨......
직접 버그를 수정한 앱을 설치한 뒤 실행해 봅니다.
수정 완료! 정상실행 되는군요. 저번에 싱크했던 기록까지는 샤오미 서버에 남아있는 모양입니다. 저는 샤오미 mi fit 앱을 완전히 지우고 제가 고친 앱을 깔았는데, 예전 기록을 확인할 수 있네요.
이 현상의 해결방법 1: 폰의 언어를 영어로 변경한 뒤 이용한다....... -_-
이 현상의 해결방법 2: 제가 한 것처럼, 이 글 윗 부분의 링크에서 APK를 다운로드 받아 이용합니다.
하지만 이 버전은 단순히 버그를 수정한 뒤, 제가 임의로 만든 버전이고, 샤오미에서 공식 배포하는 버전은 아닙니다. 어떤 보증도 하지 않습니다.
이 현상의 해결방법 3: 샤오미에서 고쳐줄 때까지 기다린다. 앱이 죽으면 구글에서 자동으로 샤오미에게 이슈 리포트를 해줍니다. 그러니 샤오미에서는 이 에러를 보고 있을 것이고, 언젠가는 고쳐줄겁니다.
'그 외' 카테고리의 다른 글
여러 jar를 하나로 합치기 - Jarsplice (0) | 2016.04.18 |
---|---|
Do it! 점프 투 파이썬 (0) | 2016.03.05 |
매트랩 대체 프로그램, 옥타브(Octave) (2) | 2016.02.10 |
MEAN: Mongo db, Express, Angular js, Node js (0) | 2016.01.07 |
[S Note] 에스노트 에러 해결방법 - Polaris Engine "This is a model which the library does note support" 에러 (16) | 2016.01.06 |