ijkplayer android so crash 분석 레코드

1166 단어
1. 디버깅 정보가 있는 so 생성
기본 스크립트에서 생성된 so는strip을 거쳤습니다. 스크립트를 바꿔야 합니다
FFmpeg
FFmpeg는 configure에서 자동으로 생성된makefile 파일이기 때문에 configure에서 부작용이 없는 프로그램을 지정하거나 비워 두십시오.
      ./configure $FF_CFG_FLAGS \
         --extra-cflags="$FF_CFLAGS $FF_EXTRA_CFLAGS" \
         --extra-ldflags="$FF_DEP_LIBS $FF_EXTRA_LDFLAGS"
         --strip="${FF_CROSS_PREFIX}-size"

ijkplayer
안드로이드의 Makefile은 비교적 직설적이며, 인터넷의 방법을 참고하여 이 줄을 더한다
cmd-strip :=

2. 디버그 정보가 있는 apk 설치
프로젝트의 so를 교체하고 안드로이드 스튜디오로 실행하는 앱을 사용하면gradle이 자동으로 strip에서 디버깅 정보를 잃어버리는 것을 발견하면 정말 헛수고입니다.
해결 방법: apk를 풀고 안에 있는 so 파일을 수동으로 교체하여 apk로 다시 압축합니다.
새 apk를 설치할 수 없습니다. 서명이 필요합니다.좋은 물건 uber-apk-signer를 추천합니다.
3. 크래쉬 분석ndk-stack -sym 슈퍼 이기, 가질 만하다.
PS:ijkplayer 스크립트를 컴파일해서 만든 것은 사실 기호 정보가 있는 것입니다. 제가 찾은 위치가 잘못되었습니다.파일은 두 군데에 있는데 하나는'ijkplayer/ijkplayer-armv7a/src/main/libs/armeabi-v7a'이고, 다른 하나는'ijkplayer/ijkplayer-armv7a/src/main/obj/local/armeabi-v7a'이며, 후자는 디버깅 정보를 가지고 있다.
어떻게 so에 디버깅 정보가 있는지 봅니까?reaelf -S my.so, 있으면.디버그 관련 필드입니다. 디버그 정보가 있음을 설명합니다.

좋은 웹페이지 즐겨찾기