2011-01-25 6 views
2

Android에서는 C++에서 일련의 테스트를 실행하는 NDK를 사용하는 응용 프로그램을 실행하고 있습니다. 테스트 중 하나가 실패하는 경우 충돌 가능성이 가장 높습니다. 응용 프로그램을 다시 실행하고 다음 테스트부터 시작하겠습니다.충돌시 자동으로 응용 프로그램을 다시 시작 하시겠습니까?

예외를 사용할 수 있지만 NDK가 예외를 사용할 수 있기를 바랍니다.

이것이 가능합니까?

+0

필자는 이것을 테스트하지는 않았지만 아마도 @FlakyTest가이를 다룰 것입니다. http://developer.android.com/reference/android/test/FlakyTest.html 그러나 다시 한번 테스트가 실패 할 때만 작동합니다. 앱을 크래시하는 오류가 아닙니다. 하지만 어쩌면해볼 가치가 있습니다. – Matthias

답변

3
  1. 왜 응용 프로그램이 충돌해야합니까? 예외를 던지지 않는 이유는 무엇입니까? 컴파일러조차도 try..catch 블록을 추가하도록 강요하지 않습니다. RuntimeExceptions이 여전히 throw 될 수 있습니다.
  2. Thread.setDefaultUncaughtExceptionHandler을 사용할 수도 있습니다. 이것은 thread마다 호출 할 필요가 있습니다.
  3. 위의 해결 방법이 적합하지 않은 경우 watchdog timer 역할을하는 백그라운드 서비스를 만들 수 있습니다.

편집 : this link : C++ 예외를 지원하는 NDK의 사용자 지정 버전을 확인하십시오. this thread에서 찾았습니다.

+0

NDK를 사용하여 테스트가 C++로되어 있다는 것을 잊었습니다. NDK 런타임에는 예외가 없으므로 문제가됩니다. – djcouchycouch

+0

3의 경우 백그라운드 서비스가 자체적으로 응용 프로그램을 시작할 수 있습니까? – djcouchycouch

+0

질문은 충돌을 피하는 것이 아니라 앱을 다시 실행하는 것에 관한 것이므로 주관적이어야합니다. 나는 질문 작성자가 충돌을 피하기 위해 최선을 다하고 있다고 확신 하나? – barmaley

관련 문제