2012-06-17 2 views
1

내 앱에 Google MAPs API를 추가했지만 중요한 부분은 아닙니다. 이 라이브러리가없는 시스템에서 앱을 실행하고 싶지만 사용자가지도 함수에 액세스하려고 할 때 예외가 발생하지 않도록하십시오. 내 활동 주위에 try/catch 블록을 넣으려고했지만 시도가 누락 된 라이브러리 예외를 잡을 수없는 것 같습니다. 내지도 활동을 시작하기 전에지도 라이브러리가 누락되었음을 감지 할 수있는 방법이 있습니까?누락 된 라이브러리를 사용할 때 예외를 피하는 방법

업데이트 : 내가이 질문을 한 이유는 MK802 Android 미니 PC를 구입했기 때문입니다.이 장치는 대중적이라고 생각합니다. Android 4.0과 함께 제공되지만 map api 라이브러리가 없습니다. 내 앱을 기기에 설치할 수있게하고 싶습니다. 현재, 내 애플 리케이션이 잘 실행되지만 사용자가지도 기능에 액세스하려고 할 때 충돌이 발생합니다 (별로 중요하지 않은 기능). 나는 이걸로 살 수 있다고 생각하지만 가능하다면 예외를 피하는 것이 최선일거야.

+0

코드가 lirbary (예 : 가져 오기)를 참조하는 경우 컴파일러가 사용할 수없는 경우 불평 할 것이므로 더 이상 선택 사항이 아닙니다. 최선의 방법은 달성하려는 것을 다시 생각하는 것입니다. – Jimmy

답변

2

Google은 Android 버전간에이 작업을 수행하는 방법에 대한 도움말을 제공했습니다. 즉, 특정 Android 버전의 API에는 액세스하지만 다른 Android 버전에는없는 경우 정상적으로 실패하는 방법은 무엇입니까? 동일한 전제가 코드의지도 부분에 사용될 수 있습니다.

http://developer.android.com/resources/articles/backward-compatibility.html

결론

는 이러한 목표를 달성하기 위해 반사를 사용하는 것입니다.

리플렉션을 사용하는 이유는 액티비티가 다른 클래스를 가져 오지만 해당 클래스가 존재하지 않으면 액티비티를 만들 수 없기 때문입니다. Reflection을 사용하면 클래스 인스턴스화를 시도하거나 catch 할 수 있으므로이 문제를 해결할 수 있습니다.

관련 문제