XML : AndroidStudiop - FATAL EXCEPTION: main - Unable to start activity ComponentInfo [duplicate]

This question already has an answer here:

My problem is that when I run my app, I open the Browse_Fragment activity but as soon as I try to open the fragment I receive an error and it crashes the whole program. I'm pretty new to android development, and when I search the error I found in logcat, nothing really helps.

MainActivity.java

  package com.example.user.shop2cookapp;    import android.app.Activity;    import android.app.ActionBar;  import android.app.Fragment;  import android.app.FragmentManager;  import android.content.Context;  import android.content.Intent;  import android.os.Build;  import android.os.Bundle;  import android.support.annotation.MainThread;  import android.view.Gravity;  import android.view.LayoutInflater;  import android.view.Menu;  import android.view.MenuItem;  import android.view.View;  import android.view.ViewGroup;  import android.support.v4.widget.DrawerLayout;  import android.widget.ArrayAdapter;  import android.widget.TextView;  import com.example.user.shop2cookapp.Browse_Fragment;    import data.DatabaseHandler;  import model.myFood;    public class MainActivity extends Activity          implements NavigationDrawerFragment.NavigationDrawerCallbacks{            /**       * Fragment managing the behaviors, interactions and presentation of the navigation drawer.       */      private NavigationDrawerFragment mNavigationDrawerFragment;      private DatabaseHandler dba;        /**       * Used to store the last screen title. For use in {@link #restoreActionBar()}.       */      private CharSequence mTitle;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);            //Create database handler for food database          dba =  new DatabaseHandler(MainActivity.this);            mNavigationDrawerFragment = (NavigationDrawerFragment)                  getFragmentManager().findFragmentById(R.id.navigation_drawer);          mTitle = getTitle();            // Set up the drawer.          mNavigationDrawerFragment.setUp(                  R.id.navigation_drawer,                  (DrawerLayout) findViewById(R.id.drawer_layout));      }        public void myDb(String foodName, String foodType, boolean hasNuts, boolean hasDairy ){          myFood food = new myFood();          food.setFoodName(foodName);          food.setFoodCategory(foodType);          food.setHasNuts(hasNuts);          food.setHasDairy(hasDairy);            dba.addFood(food);          dba.close();            Intent i  = new Intent(this, Browse_Fragment.class);        }        @Override      public void onNavigationDrawerItemSelected(int position) {            Fragment objFragment;          objFragment = null;            switch (position) {              case 0:                  objFragment = new myList_Fragment();                  break;              case 1:                  Intent intent = new Intent(this, Browse_Fragment.class);                  startActivity(intent);                  break;              case 2:                  objFragment = new FavList_Fragment();                  break;              case 3:                  objFragment = new Settings_Fragment();                  break;          }          // update the main content by replacing fragments          FragmentManager fragmentManager = getFragmentManager();          fragmentManager.beginTransaction()                  .replace(R.id.container, objFragment)                  .commit();      }        public void onSectionAttached(int number) {          switch (number) {              case 1:                  mTitle = getString(R.string.title_section1);                  break;              case 2:                  mTitle = getString(R.string.title_section2);                  break;              case 3:                  mTitle = getString(R.string.title_section3);                  break;              case 4:                  mTitle = getString(R.string.title_section4);                  break;          }      }        public void restoreActionBar() {          ActionBar actionBar = getActionBar();          actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);          actionBar.setDisplayShowTitleEnabled(true);          actionBar.setTitle(mTitle);      }          @Override      public boolean onCreateOptionsMenu(Menu menu) {          if (!mNavigationDrawerFragment.isDrawerOpen()) {              // Only show items in the action bar relevant to this screen              // if the drawer is not showing. Otherwise, let the drawer              // decide what to show in the action bar.              getMenuInflater().inflate(R.menu.main, menu);              restoreActionBar();              return true;          }          return super.onCreateOptionsMenu(menu);      }        @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();            //noinspection SimplifiableIfStatement          if (id == R.id.action_settings) {              return true;          }            return super.onOptionsItemSelected(item);      }        /**       * A placeholder fragment containing a simple view.       */      public static class PlaceholderFragment extends Fragment {          /**           * The fragment argument representing the section number for this           * fragment.           */          private static final String ARG_SECTION_NUMBER = "section_number";            /**           * Returns a new instance of this fragment for the given section           * number.           */          public static PlaceholderFragment newInstance(int sectionNumber) {              PlaceholderFragment fragment = new PlaceholderFragment();              Bundle args = new Bundle();              args.putInt(ARG_SECTION_NUMBER, sectionNumber);              fragment.setArguments(args);              return fragment;          }            public PlaceholderFragment() {          }            @Override          public View onCreateView(LayoutInflater inflater, ViewGroup container,                                   Bundle savedInstanceState) {              View rootView = inflater.inflate(R.layout.fragment_main, container, false);              return rootView;          }            @Override          public void onAttach(Activity activity) {              super.onAttach(activity);              ((MainActivity) activity).onSectionAttached(                      getArguments().getInt(ARG_SECTION_NUMBER));          }      }  }    

This is my manifest file:

  <?xml version="1.0" encoding="utf-8"?>    
  <application      android:allowBackup="true"      android:icon="@mipmap/ic_launcher"      android:label="@string/app_name"      android:theme="@style/AppTheme" >      <activity          android:name=".MainActivity"          android:label="@string/app_name" >          <intent-filter>              <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />          </intent-filter>      </activity>        <activity          android:name=".Browse_Fragment"          android:label="@string/title_activity_browse"/>        </application>    

This is my Browse Fragment code:

      package com.example.user.shop2cookapp;    import android.support.v4.app.FragmentTabHost;  import android.support.v4.view.ViewPager;  import android.support.v7.app.ActionBarActivity;  import android.os.Bundle;  import android.support.v7.app.AppCompatActivity;  import android.support.v7.widget.Toolbar;  import android.view.Menu;  import android.view.MenuItem;    import static com.example.user.shop2cookapp.R.menu.menu_categories;    public class Browse_Fragment extends AppCompatActivity {        // Declaring Your View and Variables        Toolbar toolbar;      ViewPager pager;      ViewPagerAdapter adapter;      SlidingTabLayout tabs;      CharSequence Titles[]={"Wheats","Dairy","Greens","Proteins"};      int Numboftabs =4;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.fragment_browse);              // Creating The Toolbar and setting it as the Toolbar for the activity            toolbar = (Toolbar) findViewById(R.id.tool_bar);          setSupportActionBar(toolbar);              // Creating The ViewPagerAdapter and Passing Fragment Manager, Titles fot the Tabs and Number Of Tabs.          adapter =  new ViewPagerAdapter(getSupportFragmentManager(),Titles,Numboftabs);            // Assigning ViewPager View and setting the adapter          pager = (ViewPager) findViewById(R.id.pager);          pager.setAdapter(adapter);            // Assigning the Sliding Tab Layout View          tabs = (SlidingTabLayout) findViewById(R.id.tabs);          tabs.setDistributeEvenly(true); // To make the Tabs Fixed set this true, This makes the tabs Space Evenly in Available width            // Setting Custom Color for the Scroll bar indicator of the Tab View          tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {              @Override              public int getIndicatorColor(int position) {                  return getResources().getColor(000);              }          });            // Setting the ViewPager For the SlidingTabsLayout          tabs.setViewPager(pager);            }          @Override      public boolean onCreateOptionsMenu(Menu menu) {          // Inflate the menu; this adds items to the action bar if it is present.          getMenuInflater().inflate(menu_categories, 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();            //noinspection SimplifiableIfStatement          if (id == R.id.action_settings) {              return true;          }            return super.onOptionsItemSelected(item);      }  }        /**@Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);            setContentView(R.layout.browse_layout);          mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);          mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);            mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),                  FragmentStackSupport.CountingFragment.class, null);          mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),                  LoaderCursorSupport.CursorLoaderListFragment.class, null);          mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"),                  LoaderCustomSupport.AppListFragment.class, null);          mTabHost.addTab(mTabHost.newTabSpec("throttle").setIndicator("Throttle"),                  LoaderThrottleSupport.ThrottledLoaderListFragment.class, null);      }              View rootview;      @Nullable      @Override      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {          rootview = inflater.inflate(R.layout.browse_layout,container, false);          return rootview;      }*/    

this is what appears in the logcat:

  12-06 05:44:22.521    3732-3732/com.example.user.shop2cookapp E/AndroidRuntime﹕ FATAL EXCEPTION: main  Process: com.example.user.shop2cookapp, PID: 3732  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.shop2cookapp/com.example.user.shop2cookapp.Browse_Fragment}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)          at android.app.ActivityThread.access$800(ActivityThread.java:144)          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)          at android.os.Handler.dispatchMessage(Handler.java:102)          at android.os.Looper.loop(Looper.java:135)          at android.app.ActivityThread.main(ActivityThread.java:5221)          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:899)          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)   Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.          at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:310)          at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:279)          at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)          at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)          at com.example.user.shop2cookapp.Browse_Fragment.onCreate(Browse_Fragment.java:28)          at android.app.Activity.performCreate(Activity.java:5933)          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)              at android.app.ActivityThread.access$800(ActivityThread.java:144)              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)              at android.os.Handler.dispatchMessage(Handler.java:102)              at android.os.Looper.loop(Looper.java:135)              at android.app.ActivityThread.main(ActivityThread.java:5221)              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:899)              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)    

No comments:

Post a Comment