마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

@android:style/Theme.NoTitleBar.Fullscreen 질문합니다

0 추천
    android:name="com.example.slidemenu.Main"
            android:label="@string/app_name" >
            
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
         
        </activity>
        <activity android:name=".IntroActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"></activity>
 
라고되있을떄
 
다른액티비티에 선언해주면
오류가뜨지않습니다만
메인페이지에 @android:style/Theme.NoTitleBar.Fullscreen를 쓸경우
오류가뜨면서 팅깁니다
 
08-30 13:12:14.524: E/AndroidRuntime(539): FATAL EXCEPTION: main
08-30 13:12:14.524: E/AndroidRuntime(539): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.boos.boos/com.boos.boos.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
08-30 13:12:14.524: E/AndroidRuntime(539): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
08-30 13:12:14.524: E/AndroidRuntime(539): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
08-30 13:12:14.524: E/AndroidRuntime(539): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-30 13:12:14.524: E/AndroidRuntime(539): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
08-30 13:12:14.524: E/AndroidRuntime(539): at android.os.Handler.dispatchMessage(Handler.java:99)
08-30 13:12:14.524: E/AndroidRuntime(539): at android.os.Looper.loop(Looper.java:123)
08-30 13:12:14.524: E/AndroidRuntime(539): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-30 13:12:14.524: E/AndroidRuntime(539): at java.lang.reflect.Method.invokeNative(Native Method)
08-30 13:12:14.524: E/AndroidRuntime(539): at java.lang.reflect.Method.invoke(Method.java:507)
08-30 13:12:14.524: E/AndroidRuntime(539): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-30 13:12:14.524: E/AndroidRuntime(539): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-30 13:12:14.524: E/AndroidRuntime(539): at dalvik.system.NativeStart.main(Native Method)
08-30 13:12:14.524: E/AndroidRuntime(539): Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
08-30 13:12:14.524: E/AndroidRuntime(539): at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:110)
08-30 13:12:14.524: E/AndroidRuntime(539): at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:99)
08-30 13:12:14.524: E/AndroidRuntime(539): at com.boos.boos.MainActivity.onCreate(MainActivity.java:17)
08-30 13:12:14.524: E/AndroidRuntime(539): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-30 13:12:14.524: E/AndroidRuntime(539): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
08-30 13:12:14.524: E/AndroidRuntime(539): ... 11 more
 
 
부탁드립니다

 

분발하는자 (1,190 포인트) 님이 2014년 8월 30일 질문

1개의 답변

+1 추천
최근 SDK에서는 프로젝트 생성시 Activity 자동 생성 기능을 이용하면

Appcompat 프로젝트가 자동으로 추가 되면서 라이브러리 형태로 참조 하게 됩니다.

진저브레드와 같이 예전 버전에서 ActionBar 같은 기법을 사용할 수 있도록 나온 호환성 패키지 인데요.

이것이 기본으로 참조 되게 되면 자동 생성된 Activity가 Appcompat의 ActionBarActivity를 extend 하게 됩니다.

본래는 그냥 Activity 죠.

매니페스트의 테마도 살펴 보면 결국 Theme.AppCompat.Light를 참조하게 되어 있습니다.

AppCompat 소속이 아닌 FullScreen 테마를 적용 했기에 상속받은 ActionBarActivity와 매칭이 되질 않아서 오류가 발생한거죠.

AppCompat 소속의 테마에서 FullScreen 속성을 찾아 적용하거나 (이건 테스트 못해봤습니다)

Activity의 Extend를 기본 Activity로 변경하시면 정상적으로 실행 될겁니다.
익명사용자 님이 2014년 9월 1일 답변
와 진짜 감사해요
질문자는 아니지만 이거때매 몇시간째 헤메고 있었는데ㅠㅠ
사람들 다
android:theme="@android:style/Theme.NoTitleBar"
이거만 가르쳐주고ㅠㅠ 근데 해도 다 튕기고ㅠㅠ 감사해요ㅠㅠ
...