1

アンドロイドアプリでツールバーを追加したいのですが、私のアプリをgitでプッシュした後、私のStudentDashboardActivity.javaでこのエラーが発生しています。私はそれの背後にある問題を見つけることができませんでした。アンドロイドアプリでツールバーを追加

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

あなたがエラーを見ると、それはある時点で言うことができます: "原因:java.lang.IllegalStateException:これはアクティビティにはすでにウィンドウデコレーションによってアクションバーが提供されています。あなたのテーマでWindow.FEATURE_SUPPORT_ACTION_BARを要求せず、windowActionBarをfalseに設定して、代わりにツールバーを使用するようにしてください」上記のコメントによってリンクされた質問によって対処されているようだ。 – Acapulco

答えて

1

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

をwindowActionBarとアプリのテーマを宣言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

あなたがテーマの任意のアプリのサポートライブラリを使用している場合は変更しよう

も線の下に含める必要がstyle.xmlに偽のよう
<item name="windowNoTitle">true</item> 
+0

私は既に2行をstyle.xml –

関連する問題