program story

java.lang.IllegalArgumentException : AppCompat가 현재 테마 기능을 지원하지 않습니다

inputbox 2020. 8. 6. 08:19
반응형

java.lang.IllegalArgumentException : AppCompat가 현재 테마 기능을 지원하지 않습니다


Eclipse에서 Android studio로 프로젝트를 마이그레이션하려고했습니다. 마지막으로 실행할 수는 있지만 특정 시점 에서이 예외가 발생하여 Google에서 이것에 대해 아무것도 발견하지 못했습니다.

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의 답변에 대한 대안,

유지 windowActionBarfalse하고 추가 windowNoTitle로 잘으로 설정합니다 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>

Btw, 지원 라이브러리 22.1의 새로운 문제입니다.


이전이 아닌 super.onCreate () 이후에 setContentView ()를 호출하는지 확인하십시오. 이것은 내 경우에 도움이되었습니다.


Style.xml에서이 부모를 사용하십시오. parent = "Theme.AppCompat.Light.NoActionBar"


내 경우에는 .NoActionBar 테마로 변경하지 않았습니다. 이 항목에서 안드로이드 접두사를 제거합니다.

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

오류가 사라집니다.


확인하십시오

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

이것이 나를 위해 작동하는 모든 것의 상단에 있습니다 .... 행운을 빕니다


이와 같이 gradle에 종속성을 추가하십시오.

compile 'com.android.support:appcompat-v7:21.0.3'

AppCompatActivity를 확장하는 주요 활동으로 문제를 해결했습니다. :)


라이브러리 버전을 22.0.0에서 22.1.1로 업그레이드하고 이전 버전으로 다시 드롭하여 수정 한 경우 동일한 문제가 발생했습니다. 최신 버전의 호환성 라이브러리에 필요한 내 활동 클래스의 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);
}

 }

In Java class change Main extends ActionBarActivity to Main extends Activity. It worked for me.


In my case, I look for @rewrihitesh answer, and I notice that I inverted elements order. Changing from

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

to

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

Fix my problem.

Hope it helps !!


if you have added <item name="windowActionBar">false</item>, then ,you need to add

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

to solve the problem.


I had same issue somewhat, removed android: from my syles.xml as per below;

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

참고URL : https://stackoverflow.com/questions/29784124/java-lang-illegalargumentexception-appcompat-does-not-support-the-current-theme

반응형