web-dev-qa-db-ja.com

java.lang.IllegalStateException:このアクティビティではTheme.AppCompatテーマ(または子孫)を使用する必要があります。チタン

このテーマを使用して、Titaniumアプリケーションのカスタムテーマを作成しています generator 。しかし、アプリケーションを実行するとクラッシュし、sdk> sdk 11のテーマを設定した場合でも、ログにappCompactが必要であると表示されます。

そして、私のターゲティングAndroidバージョンはAPI19で、最小SDKバージョンはAPI14なので、なぜappCompactが必要なのか疑問に思います。

これは私のログが言っていることです:

 [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

ActionBarActivityを使用していますが、これにはAppCompatテーマが必要です。 Titaniumでこれをどのように行うかはわかりませんが、AppCompatテーマに切り替えるか、通常のActivityを使用する必要があります(11をターゲットにしている場合は問題ありません)。以上)。

6
Nathan Walters

わかりました、これを試してください、

この属性をアクティビティに追加します

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

私はそれが非常に唯一の質問であることを知っていますが、あなたはあなたのスタイルに親のテーマを含めるべきです。

   <!-- 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

style-v11フォルダーにコードを記述します

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

およびstyles-v14フォルダー

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

ActionBarActivityをActivityまたはFragmentActivityに変更するだけです

4
Vipin Yadav

私がこのエラーにどのように遭遇したかを認めるのは少し恥ずかしいですが、誰かを1時間または髪の毛を引っ張るのを節約することを願って、私にとっては迷いました ">"私は誤って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">

マニフェストが非常に大きい場合、見逃しがちです。コンパイラは文句を言いません。

2
Amir Uval

ライブラリプロジェクトのすべてのスタイルを削除します。ライブラリプロジェクトではなく、メインプロジェクトでのみスタイルフォルダを指定します。それは私のために働いた:)

1
Jasmine John