안드로이드 개발 질문/답변
(글 수 45,052)
애드몹 sdk 를 다운받고 샘플코드 대로 따라 해보면
configChanges 에러가 남니다.
그래서 구글링 하다가
http://narakatech.blogspot.com/2011/11/admob431-you-must-have-adactivity.html
여기에 나오는대로
target=android-13 타겟을 바꿧더니 잘되더군요
그런데 마지막에 이런 말이 있네요...
빌드 시 사용할 SDK 타겟만 바꿨으므로, 하위 버전의 Android 기기에서도 3.2 SDK 에서 제공하는 하위 호환이 된다. 기본적으로 Android 는 하위 호환을 지키기 때문에 큰 문제는 발생하지 않는데, 3.2에서 deprecated 되거나 한 하위 버전 SDK의 API는 사용이 불가능하다.
이를 위해선 또다른 꼼수가 필요한데, 아래 참조 링크에서는, 3.2 에서 deprecated 된, 우리가 사용하고자 하는 API를 호출하는 library를 하위 버전 SDK를 이용해서 빌드하고, 이 library를 이용하는 방법을 이용했다.
무슨뜻인지 모르겟는데
타겟을 바꾸면 무슨 문제가 생기는 건가요?
4.1.1 버전은 아무 문제가 없다는데 지금은 찾을수가 없네요...
혹시 가지고 계신분 있으면
sungkyubabu@gmail.com 으로 보내주시면 감사하겟습니다.
2012.01.07 04:36:11
링크하신 블로그 주소가 바뀌어서 해당 글은 http://dry-kiss.blogspot.com/2011/11/admob431-you-must-have-adactivity.html 로 주소가 바뀌었습니다.




해당 변경 사항을 가하실 경우, 개발하신 앱은 3.2 SDK 를 이용해 빌드됩니다.
때문에, 3.2 SDK 를 이용해 빌드할 경우 문제가 생길 소스 코드는 이 경우 빌드가 되지 않을 거라는 이야기입니다.
예를 들어, Service.setForeground() 메소드는 SDK10 까지는 존재했지만, SDK13(3.2) 에는 더이상 존재하지 않는 메소드입니다.
때문에, 개발 중이신 앱이 Service.setForeground() 메소드를 사용하고 있다면 이 경우(3.2 SDK 를 이용해 빌드할 경우), 3.2 SDK 에는 존재하지 않는 메소드를 사용하고 있으니 빌드에 실패하겠죠.
결론적으로, 3.2 SDK 에서는 더이상 존재치 않는 메소드를 사용하고 계실 경우 빌드 과정에서 에러가 발생할 수 있다는 이야기이며, 빌드 과정이나 여타 테스트 과정에서 문제가 발생하지 않는다면 문제는 없다는 이야기이기도 합니다.
3.2 SDK 에서 하위 버전부터 이어진 method 를 다르게 구현했다면 빌드는 되더라도 기능 제공에서 문제가 있을 수 있는 여지는 있지만, 기본적으로 Android 는 하위 버전 호환을 제공하기 때문에 그런 경우는 거의 없다고 볼 수 있습니다.