java.lang.IllegalArgumentException:AppCompatは現在のテーマ機能をサポートしていません


109

プロジェクトをEclipseからAndroidスタジオに移行しようとしました。最後にそれを実行することができますが、ある時点でこの例外が発生し、これについてグーグルで何も見つかりませんでした:

04-22 00:08:15.484    9891-9891/hu.illion.kwindoo E/AndroidRuntime FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{hu.illion.kwindoo/hu.illion.kwindoo.activity.MainActivity}: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2092)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
    ...    
Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features
    at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:360)
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
    at hu.illion.kwindoo.activity.MainActivity.onCreate(MainActivity.java:73)
    at android.app.Activity.performCreate(Activity.java:5047)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2056)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2117)
    ...

73. MainActivityの行は次のとおりです。

setContentView(R.layout.activity_main);

できればアドバイスしてください。


これを見たことはありませんが、おそらく、異なるバージョンのAndroid APIを必要とするR.layout.activity_mainの機能を使用していますか?
-Android

theme.xmlまたはstyle.xmlとactivity_main.xmlを投稿してください
Charaf Eddine Mechalikh 2015

.gradleファイルもここに配置できますか?あなたはおそらく古いappcompatに依存していますか?
RaphMclee

回答:


233

@sbaarの答えの代わりに、

そのままwindowActionBarfalseしてwindowNoTitle、同様に追加して、trueます。

すなわち

   <item name="windowActionBar">false</item>
   <item name="windowNoTitle">true</item>

4
今日、最新のappcompt(22.1)に更新した後、アプリに対してこれを実行する必要がありました。私が変更したのはそれだけであり、私のアプリは再び動作します。
SteelBytes 2015

4
これは奇妙ですが、ActionBarActivity-> AppCompatActivityの切り替え後に機能します
pawegio

5
この答えは私にはうまくいきませんでした。@sbaarの回答のみが機能しました。これらに加えて、Theme.AppCompat.NoActionBar::あなたのテーマは継承すべき<項目名= "windowActionBar">偽</アイテム>と<項目名= "windowNoTitle">真</ item>は
blueware

1
これは、NoActionBarスタイルの選択肢がないテーマで機能します。私の例では、それは動作しますTheme.AppCompat.Light.Dialog
ドブリドッグ

1
これは、Theme.AppComapt.NoActionBarから継承するときに機能します。パーフェクト!
タリク2015

41

削除する

<item name="windowActionBar">false</item>

テーマから、.NoActionBarテーマから継承していることを確認してから、ツールバーを通常のように設定します。


1
そして、なぜ私は物事を変更する必要がありますか?このプロジェクトは、数か月の間、日食があり非常に良かったです。
アダムVarhegyi 2015

3
数時間前に、Googleがサポートライブラリのバージョン22.1をリリースしたため、プロジェクト(および私のサイト)でこの問題が発生しました。これは単なる偶然によるものであり、Android Studioへの移行によるものではありません。
jmart 2015

3
私にとっては、テーマを.NoActionBarから継承することが重要で、要素を削除する必要はありませんでした。
Sergey Aldoukhov 2015

30

テーマがの子であることを確認してからTheme.AppCompat.NoActionBar、次の場所でstyles.xml

<style name="MyMaterialTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="windowNoTitle">true</item>
        ...
</style>

ところで、それはSupport Library 22.1の新しい問題です。


@QadirHussain、いや、しませんでした。
Anggrayudi H 2015

AppCompat.NoActionBarにより、すべてのtextViewカラーが白になり、代わりに
Theme.AppCompat.Light.NoActionBarが


16

の前ではなくのsetContentView()super.onCreate()で呼び出すかどうかを確認してください。これは私の場合に役立ちました。


windowNoTitleとwindowActionBarがありましたが、まだ機能しませんでした。これで解決しました。ありがとう!
avb


3

私の場合、私は.NoActionBarテーマに変更しませんでした。このアイテムからandroidプレフィックスを削除するだけです。

<item name="windowActionBar">false</item>

エラーはなくなります。


言及しないでください。あなたのコメントを見てうれしいです。
Setmax、2015

3

確認してください

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

これが私にとってうまくいくすべての一番上にあります...幸運



1

AppCompatActivityを拡張する私のメインのアクティビティによって問題を解決しました:)


1

同じ問題が多少あり、android:以下のようにsyles.xmlから削除されました。

 <!-- caused crash -->
 <item name="android:windowActionBar">false</item>
 <item name="android:windowNoTitle">true</item>

 <!-- didn't cause crash -->
 <item name="windowActionBar">false</item>
 <item name="windowNoTitle">true</item>

0

ライブラリのバージョンを22.0.0から22.1.1にアップグレードし、以前のバージョンにドロップバックして修正したときに、同じ問題が発生しました:com.android.support:appcompat-v7:22.0.0で、ActionBarActivityの使用に戻ります。互換性ライブラリの新しいバージョンで必要とされる私のアクティビティクラスのAppCompatActivityではありません。後でもう一度やります。


0

これをstyle.xmlで使用するだけで、他の編集は必要ありません

 <style name="AppTheme" parent="Theme.AppCompat">

<!-- theme customizations -->

<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

アクティビティファイルには何も追加しないでください。

public class Main extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

 }

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} 

@Override
 public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
    return true;
}
return super.onOptionsItemSelected(item);
}

 }

0

Javaクラスでに変更Main extends ActionBarActivityMain extends Activityます。それは私のために働いた。


0

私の場合、@ rewrihiteshの回答を探しましたが、要素の順序が逆になっていることに気づきました。からの変更

setContentView(R.layout.activity_test);
super.onCreate(savedInstanceState);

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);

私の問題を修正します。

それが役に立てば幸い !!


0

追加した<item name="windowActionBar">false</item>場合は、追加する必要があります

<item name="windowNoTitle">true</item>

問題を解決するため。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.