XML : How to create application toolbar?

I am currently learning how to create ToolBar in android. I have written the code that gives me no errors while building, but crushes on runtime. As the error appears in line setContentView(R.layout.activity_main) I assume that the mistake is somewhere in XMLs. Could You tell me what did I do wrong?

MainActivity.java

  public class MainActivity extends AppCompatActivity {    private Toolbar toolbar;  @Override  protected void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.activity_main);      toolbar = (Toolbar) findViewById(R.id.app_bar);      setSupportActionBar(toolbar);    }    @Override  public boolean onCreateOptionsMenu(Menu menu) {      // Inflate the menu; this adds items to the action bar if it is present.      getMenuInflater().inflate(R.menu.menu_main, menu);      return true;  }    @Override  public boolean onOptionsItemSelected(MenuItem item) {      int id = item.getItemId();        //noinspection SimplifiableIfStatement      if (id == R.id.action_settings) {          return true;      }      if(id == R.id.navigate){          //startActivity(new Intent(this, SubActivity.class));      }        return super.onOptionsItemSelected(item);  }    

}

activity_main.xml

  <?xml version="1.0" encoding="utf-8"?>  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  tools:context=".MainMenu">    <include      android:id="@+id/app_bar"      layout="@layout/app_bar"/>    <TextView      android:text="Hello World!"      android:layout_width="match_parent"      android:layout_height="wrap_content" />    

app_bar.xml

  <?xml version="1.0" encoding="utf-8"?>  <android.support.v7.widget.Toolbar  xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:iosched="http://schemas.android.com/apk/res-auto"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:background="@color/colorPrimary"    iosched:theme="@style/ThemeOverlay.AppCompat.Light"  iosched:popupTheme="@style/ThemeOverlay.AppCompat.Dark"    >  </android.support.v7.widget.Toolbar>    

styles.xml

  <resources>    <style name="AppTheme." parent="AppTheme.Base">  </style>    <style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">      <!-- Customize your theme here. -->      <item name="colorPrimary">@color/colorPrimary</item>      <item name="colorPrimaryDark">@color/colorPrimaryDark</item>      <item name="colorAccent">@color/colorAccent</item>  </style>    

EDIT StackTrace:

          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime: FATAL EXCEPTION: main           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.joanna.fragmentn/com.example.joanna.fragmentn.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2081)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2106)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread.access$700(ActivityThread.java:134)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1217)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:137)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:4856)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:  Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:310)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:279)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at com.example.joanna.fragmentn.MainActivity.onCreate(MainActivity.java:19)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:5047)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2045)          12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2106)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread.access$700(ActivityThread.java:134)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1217)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:137)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:4856)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)           12-20 16:00:50.238 14666-14666/com.example.joanna.fragmentn E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)     

No comments:

Post a Comment