응용 프로그램은 캔버스에서 매트릭스 계산을 사용하여 앱을 사용하여 기본 코드에서 Android 4.3+를 충돌합니다.

StackOverflow https://stackoverflow.com//questions/20022243

문제

필요한 것보다 더 많은 시간을 읽는 데 더 많은 시간을 할애하기 전에 나는이 질문에 답할 것입니다. 나는 하루 종일 디버깅을 소비하고 나가야한다고 생각했습니다.

나는 기본적으로 골프 코스에서의 일종의 턴 - 바이 턴 네비게이션 인 애플리케이션을위한 개발자이다. 이와 같이, 나는 이미지를 북쪽으로 향하게하기 위해 회전 해야하는 이미지를 가지고 있습니다. 이것은 분명히 약간의 매트릭스 변환이 필요합니다.

Android 4.3은 HTC One에 밀어 넣었습니다. 누군가가 사용하기를 원할 때마다 앱이 단순히 닫히는 것에 대해 몇 가지 불만 사항이 있습니다. "불행히도 멈췄다."

내 초기 디버그 세션이 일어나지 않았습니다. 처음에는 던지는 것도 예외가 없었습니다. 내 로그에서 다음을 찾았습니다.

11-12 14 : 12 : 56.257 : Assert / libc (5206) : 0x00000000 (code= 1), 실 5206 (ndroid.appname)

에서 치명적인 신호 11 (SIGSEGV)

실제로 디버깅을 시작하지 않으면, 나는 모든 것을 통해 오래 동안 늙은 학교를 밟고, 많은 용의자와 많은 카페인을 식별하지만 결국 나는 그것을 쓴 동료의 도움으로 그것을 알아 냈습니다. 범인으로 밝혀진 코드.

도움이 되었습니까?

해결책

꺼지는 경우이 줄은 모든 문제를 야기했습니다. canvas.setmatrix (null);

이 줄의 의도는 간단했습니다. 변환 행렬을 다시 ID 매트릭스로 다시 재설정하여 새로운 변환을 적용 할 수 있습니다. 문서 , 이는 허용됩니다 :

현재 행렬을 지정된 매트릭스로 완전히 끼 웁니다. matrix 매개 변수가 null이면 현재 행렬이 ID로 재설정됩니다.

명백하게 Android에서 작업하는 사람들은 4.3 코드에서 NULL 매개 변수에 대한이 검사를 제거했지만 문서 또는 을 갱신하는 데 필요한 문서를 업데이트하는 데 필요한 것으로 간주하지 않았습니다. 대신,이 선은 일어난 곳과 그 이유가있는 곳에서 단서만큼이나 모든 것을 충돌시킵니다.

버그 보고서 버그 보고서를 제출했습니다. 나는 그것이 또는이 스레드가 같은 상황에서 누군가를 돕기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top