Android 상위버전(허니컴 이상) API를 구버전 하위 API에서 사용해보자

이번 포스팅은 GREE SDK를 붙이다가 나온 에러때문에 정리를 하게되네요. 본론에 들어가기에 앞서 관련 에러 로그부터 확인해보면 아래와 같습니다.

  • Cannot cast from Activity to SetupActivity SetupActivityHelperFrag.java /GreeSdk/src/net/gree/asdk/core/auth line 385 Java Problem
  • Fragment cannot be resolved to a type DashboardContentFragment.java /GreeSdk/src/net/gree/asdk/core/dashboard line 54 Java Problem
  • FragmentActivity cannot be resolved to a type DashboardActivity.java /GreeSdk/src/net/gree/asdk/core/dashboard line 77 Java Problem
  • FragmentManager cannot be resolved to a type DashboardActivity.java /GreeSdk/src/net/gree/asdk/core/dashboard line 190 Java Problem
  • FragmentTransaction cannot be resolved to a type DashboardActivity.java /GreeSdk/src/net/gree/asdk/core/dashboard line 191 Java Problem
  • Incompatible conditional operand types Activity and FragmentActivity ImageUploader.java /GreeSdk/src/net/gree/asdk/core/dashboard line 338 Java Problem
  • RESULT_OK cannot be resolved to a variable DashboardActivity.java /GreeSdk/src/net/gree/asdk/core/dashboard line 322 Java Problem
  • TELEPHONY_SERVICE cannot be resolved to a variable SetupActivity.java /GreeSdk/src/net/gree/asdk/core/auth line 782 Java Problem
  • The constructor AgreementDialog(SetupActivity, String) is undefined SetupActivity.java /GreeSdk/src/net/gree/asdk/core/auth line 386 Java Problem
  • The import android.support cannot be resolved DashboardActivity.java /GreeSdk/src/net/gree/asdk/core/dashboard line 52 Java Problem
  • The method cast(Object) from the type Class<FragmentActivity> refers to the missing type FragmentActivity ImageUploader.java /GreeSdk/src/net/gree/asdk/core/dashboard line 339 Java Problem

총 212개나 되는 에러를 GREE SDK 내부에서 뿜더군요. Fragment cannot be resolved to a type 관련 에러가 많았고 밑에는 다른 것도 있었는데요, 공식 Android GREE SDK 개발자 가이드에서 조차 관련 사항을 확인할 수 없었습니다. Project Build Target 버전이 다른가 하고 API 버전을 바꿔가면서 빌드를 해봤지만 에러 갯수만 차이가 늘거나 줄어들 뿐 해결은 안되었습니다. 구글링 들어갔죠.

이런 종류의 에러는 Android에 Support Library를 사용해줘야 해결이 된다는군요. Android SDK에서 기본으로 제공해주는 클래스가 아니기 때문이라네요. 구버젼만 그런건지...

java2s라는 Java관련 튜토리얼 홈페이지인듯한데 이곳에서 android-support-v4.jar를 다운로드 할 수 있습니다. 버전이 높은 v13등 다른 파일도 보이기는 하는데 일단 v4를 다운받아 원하는 위치에 압축해제합니다.

또는 Android SDK Manager에서 Extras에 보면 Android Support Library를 Install해주시면 됩니다.

그러면 android-sdk\extras\android\support에 v4, v7, v13이 설치가 됩니다.

이제 GREE SDK에 마우스 우클릭해서 Properties -> Java Build Path의 Libraries탭에서 Add External JARs를 눌러 android-support-v4.jar를 추가 후 체크하고 저장합니다. 이제 빌드하면 에러없이 빌드가 완료되어 greesdk.jar 파일이 생성됩니다.

밑에는 java2s에 있는 android-support-v4.jar안의 META-INF/MANIFEST.MF파일 내용인데 여러개의 class들이 있네요. Fragment 가 아니더라도 아래 것들이 문제가 된다면 android-support-v4.jar 파일을 추가하시면 될 듯합니다.

Files contained in android-support-v4.jar: 


META-INF/MANIFEST.MF

android.support.v4.util.LogWriter.class
android.support.v4.util.LruCache.class
android.support.v4.util.DebugUtils.class
android.support.v4.util.TimeUtils.class
android.support.v4.app.FragmentManagerImpl.class
android.support.v4.app.FragmentManagerState.class
android.support.v4.app.FragmentState.class
android.support.v4.app.LoaderManager.class
android.support.v4.app.FragmentActivity.class
android.support.v4.app.ListFragment.class
android.support.v4.app.NoSaveStateFrameLayout.class
android.support.v4.app.HCSparseArray.class
android.support.v4.app.SuperNotCalledException.class
android.support.v4.app.ActivityCompatHoneycomb.class
android.support.v4.app.BackStackState.class
android.support.v4.app.DialogFragment.class
android.support.v4.app.FragmentTransaction.class
android.support.v4.app.LoaderManagerImpl.class
android.support.v4.app.Fragment.class
android.support.v4.app.FragmentPagerAdapter.class
android.support.v4.app.FragmentStatePagerAdapter.class
android.support.v4.app.FragmentManager.class
android.support.v4.app.BackStackRecord.class
android.support.v4.view.MotionEventCompat.class
android.support.v4.view.ViewConfigurationCompat.class
android.support.v4.view.ViewPager.class
android.support.v4.view.VelocityTrackerCompatHoneycomb.class
android.support.v4.view.ViewConfigurationCompatFroyo.class
android.support.v4.view.MotionEventCompatEclair.class
android.support.v4.view.PagerAdapter.class
android.support.v4.view.MenuCompatHoneycomb.class
android.support.v4.view.VelocityTrackerCompat.class
android.support.v4.view.MenuCompat.class
android.support.v4.os.ParcelableCompatCreatorHoneycombMR2.class
android.support.v4.os.ParcelableCompatCreatorCallbacks.class
android.support.v4.os.ParcelableCompat.class
android.support.v4.os.ParcelableCompatCreatorHoneycombMR2Stub.class
android.support.v4.widget.SimpleCursorAdapter.class
android.support.v4.widget.CursorFilter.class
android.support.v4.widget.CursorAdapter.class
android.support.v4.widget.ResourceCursorAdapter.class
android.support.v4.content.AsyncTaskLoader.class
android.support.v4.content.Loader.class
android.support.v4.content.CursorLoader.class


구글 공식 개발 가이드 Support Library
구글 공식 개발 가이드 Using the Support Library

댓글

  1. 도움 받고 갑니다.
    이것들은 왜케 업데이트 할때마다
    에러를 내는지 모르겠네요.

    업데이트가 고역입니다. -_-

    답글삭제
    답글
    1. 프로그래밍이 다 그렇죠^^ 도움이 되었다니 기분좋네요~ 열코딩 하세요~

      삭제

댓글 쓰기

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.