본문 바로가기

개발 이야기

Android ClassCastException at android.app.Application 오류 수정

320x100

[Android] ClassCastException at android.app.Application 오류 수정



간혹 android.app.Application을 상속받은 클래스를 선언 후에 getApplication()메소드 호출 후 class cast 시 

오류가 발생해서 당황스러울 때가 있다. 물론 내 이야기다..... ㅡ.ㅡㅁ.(뭐.. 어쩌라고? 응?)


[android.app.Application 클래스 상속한 클래스 선언]


public class Application extends android.app.Application {
     ................
}


[getApplication()메소드를 이용해서 변경작업]

public class MainActivity extends Activity {
     private Applicatioin mApplication;
     mApplication = (Application) getApplication(); <----  class cast 오류발생    
}

해당 경우는 사용자가 android.app.Application을 상속받아 별도의 클래스를 만들었지만 
Android OS 자체는 기존 android.app.Application을 가리키고 있어서 오류가 발생되었다.

이를 해결하기 위해서는 androidmanifast .xml 파일을 수정해야 한다.
android:name 속성값을 상속받은 클래스명 Application 또는 개발자가 작성한 임의의 클래스명으로 작성해 주면 된다. 

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:name="Application" >
        <activity
            android:name="kr.co.sstd.bittestapp.ManagerActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>


반응형