Qt 앱에는 리소스의 어딘가에 사용 된 .so 라이브러리 이름의 배열이 있습니다. 시작시 모든 .so 라이브러리가로드됩니다 (loadLibrary() 통해). 라이브러리가로드되는 순서는 중요합니다. 함수는 아직로드되지 않은 라이브러리에 정의 된 참조 함수를 사용할 수 없습니다. 순환 의존성을 구현하는 것은 까다 롭습니다. libszachy_android_1.so
의 일부 기능 (? 그것은 바로 이름이 조금 이상하다) 부터 srand()를 아직로드되지 않은를 호출 것을 내가 볼 로그에서
; 로드리스트에서 나중에 언급 될지도 모르지만, loadLibrary()는 계획된 미래에 대해 알지 못합니다. 따라서, 당신은 이것을 얻습니다.
어제 코드가 작동했다면 변경된 것 같습니다. 버전 관리를 사용하는 경우 현재 버전과 어제 버전을 비교하여 차이점을 확인할 수 있습니다. 어쩌면, 당신은 (하중 목록 의미에서) 앞으로 참조를 삽입했습니다. OTOH, 때로 Eclipse와 make는 소스가 변경되었고 잘못된 빌드를 발견하지 못합니다. (필자는이를 관찰했지만 재현 할 수는 없습니다.) 휴대 전화에서 앱을 제거하려고 했습니까? 빌드 디렉터리 (rm *.so
)의 기존 .so 파일을 모두 제거하려고 했습니까?
.so 모듈 중 하나가 손상되었을 수 있습니다. 오류가 발생해도 객체가 생성되고 후속 빌드에서 사용되는 경우가 있습니다 (적어도 빌드 결함을 설명 할 수있는 방법).
아마도 장치에 메모리가 남아 있지 않으며 .so를 올바르게 압축 해제 할 수 없습니다.
뿌리깊은 장치에서 adb shell
으로 응용 프로그램 디렉토리를 검사하는 것이 좋습니다.
추신 : 당신은 간신히 읽을 수있는 스크린 샷을 게시했습니다. adb logcat
출력의 관련 부분으로 바꾸십시오 (사용 방법을 알고 싶으면, 먼저 수행해야 할 일은 adb logcat
및 adb shell
입니다).
모든 관련 정보를 연결하지 말고 질문에 넣으십시오. – Michael
휴대 전화에서 읽는 사용자의 경우 텍스트 스크린 샷이 끔찍합니다. ( –
대상 SDK 버전은 무엇이며 휴대 전화는 어떤 버전입니까? –