1

Я хочу добавить панель инструментов в свое приложение для Android, но я получаю эту ошибку в моей StudentDashboardActivity.java во время выполнения после нажатия моего приложения на git. Я не мог найти, в чем проблема.Добавить панель инструментов в android app

FATAL EXCEPTION: main 
       Process: com.technerdshub.vusocial, PID: 31319 
       java.lang.RuntimeException: Unable to start activity ComponentInfo{com.technerdshub.vusocial/com.technerdshub.vusocial.Activities.StudentDashboardActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693) 
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 
       at android.app.ActivityThread.access$900(ActivityThread.java:177) 
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) 
       at android.os.Handler.dispatchMessage(Handler.java:102) 
       at android.os.Looper.loop(Looper.java:145) 
       at android.app.ActivityThread.main(ActivityThread.java:5942) 
       at java.lang.reflect.Method.invoke(Native Method) 
       at java.lang.reflect.Method.invoke(Method.java:372) 
       at 

       com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389) 
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184) 
       Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 
       at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:198) 
       at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:130) 
       at com.technerdshub.vusocial.Activities.StudentDashboardActivity.onCreate(StudentDashboardActivity.java:51) 
       at android.app.Activity.performCreate(Activity.java:6289) 

StudentDashboardActivity.java

package com.technerdshub.vusocial.Activities; 

    import android.app.Activity; 
    import android.content.Intent; 
    import android.net.Uri; 
    import android.os.Bundle; 
    import android.support.design.widget.TabLayout; 
    import android.support.v4.app.FragmentManager; 
    import android.support.v4.app.FragmentPagerAdapter; 
    import android.support.v4.view.ViewPager; 
    import android.support.v7.app.ActionBarActivity; 
    import android.support.v7.widget.Toolbar; 
    import android.support.v7.app.AppCompatActivity; 
    import android.support.v7.widget.Toolbar; 

    import com.google.android.gms.appindexing.Action; 
    import com.google.android.gms.appindexing.AppIndex; 
    import com.google.android.gms.common.api.GoogleApiClient; 
    import com.technerdshub.vusocial.Fragments.TaskFragment; 
    import com.technerdshub.vusocial.Fragments.dummy.DummyContent; 
    import com.technerdshub.vusocial.R; 

    import java.util.ArrayList; 
    import java.util.List; 

    public class StudentDashboardActivity extends AppCompatActivity { 

     private Toolbar toolbar; 
     private TabLayout tabLayout; 
     private ViewPager viewPager; 
     /** 
     * ATTENTION: This was auto-generated to implement the App Indexing API. 
     * See https://g.co/AppIndexing/AndroidStudio for more information. 
     */ 
     private GoogleApiClient client; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 

      displayLoginActivity(); 

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

    //  Parse.initialize(new Parse.Configuration.Builder(this) 
    //      .applicationId("J5CIV2z6xeSCXDqdOfhE0kPSikvRFPyDyOJxqJNx") 
    //      .clientKey("bEWm4nWtWiBrMczGfOvA7s4Ulr2bAU3W3TtVSLDf") 
    //      .build() 
    //  ); 
      toolbar = (Toolbar) findViewById(R.id.tool_bar); 
      setSupportActionBar(toolbar); 

      getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
      getSupportActionBar().setElevation(2); 


      viewPager = (ViewPager) findViewById(R.id.viewpager); 
      setupViewPager(viewPager); 

      tabLayout = (TabLayout) findViewById(R.id.tabs); 
      tabLayout.setupWithViewPager(viewPager); 

    //  ParseObject testObject = new ParseObject("Task"); 
    //  testObject.put("marks", 99); 
    //  testObject.saveInBackground(); 

      // ATTENTION: This was auto-generated to implement the App Indexing API. 
      // See https://g.co/AppIndexing/AndroidStudio for more information. 
      client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); 
     } 

     private void setupViewPager(ViewPager viewPager) { 
      ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
      adapter.addFragment(new TaskFragment(), "Quiz"); 
      adapter.addFragment(new TaskFragment(), "Assignment"); 
      adapter.addFragment(new TaskFragment(), "GDB"); 
      viewPager.setAdapter(adapter); 
     } 



     private void displayLoginActivity() { 

      Intent i = new Intent(this, Login.class); 
      startActivity(i); 

     } 

     @Override 
     public void onStart() { 
      super.onStart(); 

      // ATTENTION: This was auto-generated to implement the App Indexing API. 
      // See https://g.co/AppIndexing/AndroidStudio for more information. 
      client.connect(); 
      Action viewAction = Action.newAction(
        Action.TYPE_VIEW, // TODO: choose an action type. 
        "StudentDashboard Page", // TODO: Define a title for the content shown. 
        // TODO: If you have web page content that matches this app activity's content, 
        // make sure this auto-generated web page URL is correct. 
        // Otherwise, set the URL to null. 
        Uri.parse("http://host/path"), 
        // TODO: Make sure this auto-generated app URL is correct. 
        Uri.parse("android-app://com.technerdshub.vusocial.Activities/http/host/path") 
      ); 
      AppIndex.AppIndexApi.start(client, viewAction); 
     } 

     @Override 
     public void onStop() { 
      super.onStop(); 

      // ATTENTION: This was auto-generated to implement the App Indexing API. 
      // See https://g.co/AppIndexing/AndroidStudio for more information. 
      Action viewAction = Action.newAction(
        Action.TYPE_VIEW, // TODO: choose an action type. 
        "StudentDashboard Page", // TODO: Define a title for the content shown. 
        // TODO: If you have web page content that matches this app activity's content, 
        // make sure this auto-generated web page URL is correct. 
        // Otherwise, set the URL to null. 
        Uri.parse("http://host/path"), 
        // TODO: Make sure this auto-generated app URL is correct. 
        Uri.parse("android-app://com.technerdshub.vusocial.Activities/http/host/path") 
      ); 
      AppIndex.AppIndexApi.end(client, viewAction); 
      client.disconnect(); 
     } 

     class ViewPagerAdapter extends FragmentPagerAdapter { 
      private final List<TaskFragment> mFragmentList = new ArrayList<>(); 
      private final List<String> mFragmentTitleList = new ArrayList<>(); 

      public ViewPagerAdapter(FragmentManager manager) { 
       super(manager); 
      } 

      @Override 
      public TaskFragment getItem(int position) { 
       return mFragmentList.get(position); 
      } 

      @Override 
      public int getCount() { 
       return mFragmentList.size(); 
      } 

      public void addFragment(TaskFragment fragment, String title) { 
       mFragmentList.add(fragment); 
       mFragmentTitleList.add(title); 
      } 

      @Override 
      public CharSequence getPageTitle(int position) { 
       return mFragmentTitleList.get(position); 
      } 


     } 

    } 

style.xml

<resources xmlns:tools="http://schemas.android.com/tools"> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/ColorPrimary</item> 
     <item name="colorPrimaryDark">@color/ColorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 



    </style> 

    <!--<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">--> 
     <!--<item name="windowActionBar">false</item>--> 
     <!--<item name="windowNoTitle">true</item>--> 



    <!--</style>--> 

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" > 

    </style> 

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

    <style name="TEST" parent="AppTheme" > 
     <item name="colorPrimary">@color/com_facebook_blue</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="android:colorBackground">@color/cardview_light_background</item> 
     <item name="colorPrimaryDark">@color/com_facebook_button_background_color_selected</item> 
    </style> 


    <!--&lt;!&ndash; new design fai&ndash;&gt;--> 
    <!--<style name="MyMaterialTheme" parent="MyMaterialTheme.Base">--> 

    <!--</style>--> 

    <!--<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">--> 
     <!--<item name="windowNoTitle">true</item>--> 
     <!--<item name="windowActionBar">false</item>--> 
     <!--<item name="colorPrimary">@color/colorPrimary</item>--> 
     <!--<item name="colorPrimaryDark">@color/colorPrimaryDark</item>--> 
     <!--<item name="colorAccent">@color/colorAccent</item>--> 
    <!--</style>--> 


</resources> 

Скажите, пожалуйста, как я могу решить эту ошибку?

+2

См. ссылку http://stackoverflow.com/questions/26515058/t его-активность-уже-имеет-действие-бар-снабжен-на-окно-декор –

+0

Если вы посмотрите на ошибку, вы можете сказать, что она говорит в какой-то момент: «Caused by: java.lang.IllegalStateException: This У Activity уже есть панель действий, предоставляемая декором окна. Не запрашивайте Window.FEATURE_SUPPORT_ACTION_BAR и установите для окна WindowActionBar значение false в вашей теме, чтобы вместо этого использовать панель инструментов. », Который, как представляется, рассматривается связанным вопросом в приведенном выше комментарии. – Acapulco

ответ

1

Попробуйте изменить style.xml до приведенного ниже кода

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="android:windowActionBar">false</item> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

<style name="AppTheme.NoActionBar"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style>     
1

Объявите приложение Тема с windowActionBar как ложь в style.xml

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

, если вы использовали любую библиотеку поддержки приложений для темы необходимо включить ниже линии также

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

Я уже добавил эти 2 строки в свой style.xml –

Смежные вопросы