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)
    ...

A৩. প্রধান কার্যকলাপের লাইনটি হ'ল:

setContentView(R.layout.activity_main);

আপনি যদি পারেন দয়া করে আমাকে পরামর্শ করুন।


এটি কখনও দেখেনি তবে সম্ভবত আপনি আর.লেআউট.অ্যাকটিভিটি_মাইনে এমন একটি বৈশিষ্ট্য ব্যবহার করছেন যার জন্য অ্যান্ড্রয়েড এপিআইয়ের ভিন্ন সংস্করণ প্রয়োজন? - যদিও অ্যান্ড্রয়েড স্টুডিও আপনাকে সেগুলি সম্পর্কে বলতে পছন্দ করে ... গুডলাক
গ্রিডি

আপনার থিম.এক্সএমএল বা স্টাইল.এক্সএমএল এবং ক্রিয়াকলাপ_মাইন.এক্সএমএল পোস্ট করুন
চরফ এডডাইন মেখালিখ

আপনি কি এখানে আপনার .gradle ফাইল রাখতে পারেন? আপনি সম্ভবত একটি পুরানো appcompat উপর নির্ভর করে?
র‌্যাফম্লে

উত্তর:


233

@ এসবারের উত্তরের বিকল্প,

রাখা windowActionBarথেকে falseযোগ windowNoTitleপাশাপাশি এবং এটি সেট true

অর্থাত

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

4
আজ আমার সর্বশেষতম অ্যাপকোম্প্টে (22.1) আপডেট করার পরে আমার অ্যাপে এটি করতে হয়েছিল। এটাই আমি পরিবর্তন করেছি এবং আমার অ্যাপ্লিকেশনটি আবার কাজ করে।
স্টিলবাইটস

4
এটি অদ্ভুত, তবে অ্যাকশনবার্যাকটিভিটি
পাউজিও

5
এই উত্তরটি আমার পক্ষে কার্যকর হয়নি। কেবলমাত্র @sbaar উত্তর কাজ করেছে। আপনার থিমটি উত্তরাধিকার সূত্রে পাওয়া উচিত: থিম.এপকম্প্যাট.নোকশনবার এগুলি ছাড়াও: <আইটেমের নাম = "উইন্ডো অ্যাকশনবার"> মিথ্যা </ i> << উইন্ডো নোটিটল "> সত্য </item>
ব্লুওয়্যার

1
এটি থিমগুলির জন্য কাজ করে যা NoActionBarস্টাইলের বিকল্প নেই alternative আমার উদাহরণে এটি কাজ করেTheme.AppCompat.Light.Dialog
ডব্রিজডোগ

1
থিম। অ্যাপকোম্যাট.নো অ্যাকশনবার থেকে উত্তরাধিকার সূত্রে এই কাজ করে। পারফেক্ট!
তারিক

41

অপসারণ

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

আপনার থিম থেকে, তারপরে নিশ্চিত করুন যে আপনি একটি .NoActionBar থিম থেকে উত্তরাধিকার সূত্রে উত্তোলন করছেন, তারপরে আপনার সরঞ্জামদণ্ডটিকে সাধারণের মতো সেট করুন।


1
এবং কেন আমি কোনও জিনিস সংশোধন করব? এই প্রকল্পটি কয়েক মাস ধরে গ্রহনের সাথে বেশ ভাল ছিল।
অ্যাডাম ভারহেগেই

3
কারণ কয়েক ঘন্টা আগে গুগল তাদের সহায়তার লাইব্রেরির 22.1 সংস্করণ প্রকাশ করেছে, এটি আপনার প্রকল্পে (এবং আমার মধ্যেও) এই সমস্যাটি সৃষ্টি করে। এটি কেবল একটি কাকতালীয় ঘটনা নয়, অ্যান্ড্রয়েড স্টুডিওতে স্থানান্তরের কারণে নয়।
jmart

3
আমার জন্য .NoActionBar থেকে থিমটি উত্তরাধিকারসূত্রে পাওয়া কী ছিল, কোনও উপাদান অপসারণ প্রয়োজন হয়নি।
সের্গেই আলদৌখভ

30

নিশ্চিত করুন যে আপনার থিমটি শিশু থেকে Theme.AppCompat.NoActionBar, তারপরে styles.xml:

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

বিটিডব্লিউ, এটি সমর্থন লাইব্রেরি 22.1 এর জন্য একটি নতুন সমস্যা।


@ কাদিরহুসাইন, না, না।
অ্যাংগ্রায়ুডি এইচ

অ্যাপকম্প্যাট.নো অ্যাকশনবারটি আমার সমস্ত পাঠ্য দেখুন রঙের সাদা ব্যবহার থিম.অ্যাপকম্প্যাট.লাইট.নো অ্যাকশনবারের পরিবর্তে
সাহু


16

আপনি setContentView()পরে ফোন করেন কিনা তা পরীক্ষা করে দেখুন super.onCreate(), আগে নয়। এটি আমার ক্ষেত্রে সহায়তা করেছে।


উইন্ডোনিটাইটেল এবং উইন্ডোঅ্যাকশনবার ছিল কিন্তু এখনও কার্যকর হয়নি এটি আমার জন্য এটি স্থির করে দিয়েছে। ধন্যবাদ!
এবিবি


3

আমার ক্ষেত্রে আমি .NoActionBar থিমে পরিবর্তন করি নি। আমি এই আইটেমটি থেকে অ্যান্ড্রয়েড উপসর্গ সরিয়েছি।

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

এবং ত্রুটি চলে যায়।


এটি উল্লেখ না। আপনার মন্তব্য দেখে খুশি।
সেটম্যাক্স

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 এবং অ্যাকশনবার্টিভিটি ব্যবহার করে ফিরে যেতে, সামঞ্জস্য লাইব্রেরির নতুন সংস্করণ দ্বারা প্রয়োজনীয় হিসাবে আমার ক্রিয়াকলাপের ক্লাসগুলিতে অ্যাপকম্প্যাটএটিভিটি নয়। আমি পরে আবার চেষ্টা করব।


0

এটি আপনার স্টাইলে ব্যবহার করুন। এক্সএমএল অন্য কোনও সম্পাদনার দরকার নেই

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

ক্রিয়াকলাপের ফাইলটিতে কিছু যুক্ত করবেন না দয়া করে এটি ছেড়ে দিন leave

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 ActionBarActivityকরার জন্য Main extends Activity। এটা আমার জন্য কাজ করে।


0

আমার ক্ষেত্রে, আমি @rurihitesh উত্তর খুঁজছি, এবং আমি লক্ষ্য করেছি যে আমি উপাদানগুলির ক্রম উল্টিয়েছি । থেকে পরিবর্তন করা হচ্ছে

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.