web-dev-qa-db-fra.com

java.lang.IllegalStateException: vous devez utiliser un thème Theme.AppCompat (ou un descendant) avec cette activité. titane

Je crée un thème personnalisé pour mon application Titanium à l'aide de ce thème générateur . Mais lorsque j'exécute mon application, elle se bloque et mon journal indique que j'ai besoin de appCompact même si je définis le thème pour sdk> sdk 11.

Et ma version ciblée pour Android est API 19 et la version min du SDK est API14, alors je me demande pourquoi j'ai besoin de appCompact.

Voici ce que dit mon journal:

 [ERROR] :  TiApplication: (main) [512,512] Sending event: exception on thread: main msg:Java.lang.RuntimeException: Unable to start activity ComponentInfo{a.s/org.appcelerator.titanium.TiActivity}: Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.; Titanium 3.4.0,2014/09/25 16:42,b54c467
[ERROR] :  TiApplication: Java.lang.RuntimeException: Unable to start activity ComponentInfo{a.s/org.appcelerator.titanium.TiActivity}: Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
[ERROR] :  TiApplication:   at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2195)
[ERROR] :  TiApplication:   at Android.app.ActivityThread.handleLaunchActivity(Activ
[ERROR] :  TiApplication:   at Android.app.ActivityThread.access$800(ActivityThread.Java:135)
[ERROR] :  TiApplication:   at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1196)
[ERROR] :  TiApplication:   at Android.os.Handler.dispatchMessage(Handler.Java:102)
[ERROR] :  TiApplication:   at Android.os.Looper.loop(Looper.Java:136)
[ERROR] :  TiApplication:   at Android.app.ActivityThread.main(ActivityThread.Java:5017)
[ERROR] :  TiApplication:   at Java.lang.reflect.Method.invokeNative(Native Method)
[ERROR] :  TiApplication:   at Java.lang.reflect.Method.invoke(Method.Java:515)
[ERROR] :  TiApplication:   at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:779)
[ERROR] :  TiApplication:   at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:595)
[ERROR] :  TiApplication:   at dalvik.system.NativeStart.main(Native Method)
[ERROR] :  TiApplication: Caused by: Java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
[ERROR] :  TiApplication:   at Android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.Java:108)
[ERROR] :  TiApplication:   at Android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.Java:57)
[ERROR] :  TiApplication:   at Android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.Java:98)
[ERROR] :  TiApplication:   at org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.Java:516)
[ERROR] :  TiApplication:   at org.appcelerator.titanium.TiActivity.onCreate(TiActivity.Java:18)
[ERROR] :  TiApplication:   at Android.app.Activity.performCreate(Activity.Java:5231)
[ERROR] :  TiApplication:   at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1087)
[ERROR] :  TiApplication:   at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2159)
[ERROR] :  TiApplication:   ... 11 more
4
Antwan

Vous utilisez une ActionBarActivity, qui nécessite un thème AppCompat. Je ne sais pas comment procéder avec Titanium, mais vous devez soit basculer sur un thème AppCompat, soit utiliser une variable Activity (ce qui ne devrait pas poser de problème si vous ciblez 11 ou plus).

6
Nathan Walters

ok s'il te plait essaie ça

Ajouter cet attribut à votre activité

Android:theme="@style/Theme.AppCompat"
9
sam

Je sais que c’est la seule question, mais vous devriez inclure le thème parent dans votre style.

   <!-- Base application theme. Transparent theme -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>


    <style name="Transparent" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="Android:windowIsTranslucent">true</item>
        <item name="Android:windowBackground">@Android:color/transparent</item>
        <item name="Android:windowContentOverlay">@null</item>
        <item name="Android:windowNoTitle">true</item>
        <item name="Android:windowIsFloating">true</item>
        <item name="Android:backgroundDimEnabled">false</item>
    </style>
5
NovusMobile

écrire le code dans le dossier style-v11 

 name="AppBaseTheme" parent="Theme.AppCompat.Light"

et dans le dossier styles-v14

 name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar"
4
velraj

Il suffit de changer l’ActionBarActivity en Activité ou FragmentActivity

4
Vipin Yadav

C'est un peu gênant d'admettre comment j'ai rencontré cette erreur, mais dans l'espoir de sauver quelqu'un d'une heure ou de m'arracher les cheveux - pour moi, c'était un ">" errant que j'ai copié par erreur dans ma AndroidManifest:

   <application
    Android:name=".MyApplication"
    Android:allowBackup="true"
    Android:fullBackupContent="@xml/my_backup_rules">
    Android:hardwareAccelerated="true"
    Android:icon="@mipmap/icon_l"
    Android:label="@string/app_name"
    Android:requiredForAllUsers="true"
    Android:supportsRtl="true"
    Android:theme="@style/MyAppTheme">

Trop facile à manquer si vous avez un très grand manifeste - le compilateur ne se plaint pas.

2
Amir Uval

Supprimez tous les styles du projet de bibliothèque. Spécifiez le dossier Style uniquement dans le projet principal et non dans le projet de bibliothèque. Cela a fonctionné pour moi :)

1
Jasmine John