adsense



[cocos2d-x](solved) v3.2가 안드로이드 5.0 롤리팝에서 문제

문제를 일으키는 api는 HttpClient의 setResponseCallback과 Node의 BMFont Label.

setResponseCallback은 콜백지정이 invoke 되어버려서 콜백을 정상적으로 타지 못하는 문제가,
BMFont는 node를 생성하면 앱이 프리징되어버리는 문제가 생깁니다.

커밋에서는 한 달 전 쯤에 확인된 모양인데, 저는 오늘 새벽에 넥7 2세대가 롤리팝 업데이트되면서 당해버렸군요..

setResponseCallback은 curl쪽 버그라는 모양인데..
아직 명확한 solve는 없는 것 같고, 당분간은 롤리팝은 극소수일 것 같으니 롤리팝이든 cocos2d-x든 수정이 나오기를 기다릴 수 밖에 없나..싶습니다..
BMFont야 어떻게든 피해갈 수 있지만 http통신이 안되면 문제가 숱하니.

cocos2d-x 2.2.x 이하 버전에서는 이상없는걸로 알려져 있습니다.


해결책 :

https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin
에서 라이브러리를 다운받아, \external\curl 폴더를 교체해주면 됩니다. httpClient와 BMFont가 한꺼번에 해결.

-> 이렇게 하더라도 playBackgroundMusic에 의한 음악이 제대로 안나오는 문제가 있고, cocosDenshion을 통한 사운드 호출에 누수가 있는지 지속적으로 사용하면 조금씩 느려지기 시작합니다.. 막 릴리즈된 3.3으로 마이그레이션하는 쪽이 해결책이 되지 않을까 기대중입니다..

-> 최종적으로 3.3으로 마이그레이션하여 롤리팝에서 실행에 큰 문제가 없는 것을 확인했습니다.
단, cocosDenshion의 AudioEngine을 쓴 경우 지속적으로 사용하면 느려지는 현상은 여전합니다. 3.3에서 사용된 신규 AudioEngine은 괜찮습니다.


덧글

  • 헬리 2015/02/05 12:00 # 삭제 답글

    안녕하세요. 지금 진행 하고 있는 프로젝트에서 위 폴더를 교체만 하면.. 에러가 엄청 나오던데 혹시 이런 경우는 없던가요?

    "_ASN1_INTEGER_get", referenced from:
    _servercert in libcocos2dx iOS.a(libcurl_la-openssl.o)

    이런 에러가.. 150개 정도 나오네요 흠
  • 펭귄대왕 2015/02/05 13:03 #

    xcode로 개발하시는건가요? 제 경우는 win7+이클립스라서 그에 따른 차이가 있을지도 모르겠습니다.
    말씀하신 것 같은 에러는 본 적이 없네요.. 가급적이면 3.3으로 마이그레이션하시는게 좋지 않을까 합니다.
댓글 입력 영역


Books

Geek라이프

게임 매니악스 슈팅 게임 알고리즘
마츠우라 켄이치로,츠카사 유키 공저/손정도 역/박민근,Pope Kim 감수

게임 매니악스 퍼즐 게임 알고리즘
마츠우라 켄이치로,츠카사 유키 공저/김병국 역

핵심강좌! Cocos2d-x
이재환 저

될 수 있어! SE 13
나츠미 코지 저/Ixy 그림/김경훈 역
예스24 | 애드온2