プロジェクトをEclipseからAndroid studioに移行しようとしました。最後にそれを実行することができますが、特定の時点でこの例外が発生し、グーグルでこれについて何も見つかりませんでした:
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);
可能であればアドバイスしてください。
@sbaarの答えに代わるもの、
windowActionBar
をfalse
に維持し、windowNoTitle
asも追加して、true
に設定します。
すなわち
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
削除する
<item name="windowActionBar">false</item>
テーマから、.NoActionBarテーマから継承していることを確認してから、ツールバーを通常のように設定します。
テーマがTheme.AppCompat.NoActionBar
の子であることを確認してから、styles.xml
で:
<style name="MyMaterialTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowNoTitle">true</item>
...
</style>
ところで、これはサポートライブラリ22.1の新しい問題です。
SetContentView()を呼び出す前にではなく、super.onCreate()の後に呼び出すかどうかを確認します。これは私の場合に役立ちました。
Style.xmlでこの親を使用するparent = "Theme.AppCompat.Light.NoActionBar"
確認してください
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
これが私のために働くすべての一番上にある....幸運
私の場合、.NoActionBarテーマに変更しませんでした。このアイテムからAndroidプレフィックスを削除します。
<item name="windowActionBar">false</item>
エラーはなくなります。
このようにgradleに依存関係を追加します
compile 'com.Android.support:appcompat-v7:21.0.3'
AppCompatActivityを拡張するメインアクティビティで問題を解決しました:)
Javaクラスで、Main extends ActionBarActivity
をMain extends Activity
に変更します。それは私のために働いた。
以下のように、syles.xmlからAndroid:
を削除し、同じ問題が多少ありました。
<!-- 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>
私の場合、@ rewrihiteshの答えを探しますが、私はinverted elements orderであることに気付きました。からの変更
setContentView(R.layout.activity_test);
super.onCreate(savedInstanceState);
に
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
私の問題を修正してください。
それが役に立てば幸い !!
<item name="windowActionBar">false</item>
を追加した場合は、追加する必要があります
<item name="windowNoTitle">true</item>
この問題を解決するために。
ライブラリバージョンを22.0.0から22.1.1にアップグレードし、以前のバージョンにドロップして修正したときに同じ問題が発生しました:com.Android.support:appcompat-v7:22.0.0に戻り、ActionBarActivityの使用に戻ります。互換性ライブラリの新しいバージョンで必要なアクティビティクラスのAppCompatActivityではありません。後でもう一度やります。
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);
}
}