2014-07-11 1 views
1

응용 프로그램은 Xamarin.Android를 사용합니다. 이는 자체적으로 큰 문제 일 수 있습니다. 문제는 때때로 (프로세스가 종료 중입니다)을 종료하고 로그에 연결할 수있는 것이 아무것도 없다는 것입니다. (비록 그것이 메모리 부족과 관련이 있다고 생각하지만, 아직 증명할 수는 없습니다. DDMS에 따르면 대부분의 시간은 대부분 OK이고, Xamarin.Android가 또 다른 메모리 풀을 사용한다면, 나는 그렇지 않습니다. 그것을 측정하는 방법을 안다.)
나는 "Environment.Exit"에 대한 코드베이스를 검색했고 물론 아무것도 찾지 못했다.
그런 사람의 범인을 찾는 방법은 무엇입니까?피드백없이 갑자기 종료되는 응용 프로그램을 디버깅하는 방법은 무엇입니까?

답변

1

직접 가비지 수집기를 사용해 볼 수 있습니다. 그냥 실행하십시오

Runtime.getRuntime().gc(); 

런타임 인스턴스에는 사용 가능한 메모리 공간을 읽는 방법도 있습니다. 그래서 당신이 스스로 기억할 수있는 문제인지 알아낼 수 있습니다.

편집 : 오, 나는 Xamarin이 C# 언어를 사용한다고 읽었습니다. 하지만 C#에는 비슷한 방법이 있다고 확신합니다.

+0

C#은 GC를 실행하는 것과 비슷한 방법을 사용합니다. 올바른 메모리 공간을 읽으려면 을 사용해보십시오. 아이디어를 제공해 주시면 고맙겠습니다. –

+0

좋아요. 문제를 파악해 보시기 바랍니다. 불행히도 저는 Xamarin과 맞지 않습니다. 방금 몇 개의 이미지를 표시하는 조각에 메모리 문제가 있습니다. 가비지 콜렉터에게 조각을 직접 삭제하는 방법으로 해결했습니다. – boeserwolf91

+0

GC가 5 초마다 강제로 작동하지 않을 때 이상하게 느껴지며 이상한 GC가 깨졌습니다. –

0

로그를 말하면 응용 프로그램 로그 또는 장치 로그를 참조하고 있습니까?

이러한 종류의 버그를 추적 할 때, 나는 항상 aLogCat을 매우 귀중한 것으로 발견했습니다.

나는 현재의 모든 로그를 지운 다음 내 응용 프로그램을 충돌이 발생한 지점까지 사용합니다. 그런 다음 신속하게 aLogCat으로 돌아가 일시 중지하고 오류가있는 위치로 스크롤합니다. 일반적으로 가장 가까운 빨간색/주황색 블록에서 발견됩니다.

이 방법을 사용하여 Xamarin 링커가 남긴 애트리뷰트를 발견 한 방법에 대한 블로그 게시물 here이 있습니다.

+0

"응용 프로그램 로그"에는 "LogCat"의 메시지가 포함되어 있으며 둘 다 확인했습니다. –

관련 문제