v21 appcompat : matériau conception ActionBar ( ) InflateException erreur classe gonfler

? user3871754 @ | Original: StackOverFlow

Essayer de déplacer l'application faite dans ( «____» ) à la nouvelle bibliothèque appcompat v20

avec : appcompat v21 beau travail

i done this:

appcompat-v7:20

and have this:

ActionBarActivity implements ActionBar.TabListener, ActionBar.OnNavigationListener

http://stackoverflow.com/questions/21386077/error-inflating-class-android-support-v7-internal-widget-actionbarview



Top 5 Respuesta

1Gabriele Mariotti @

Pour utiliser le nouveau android.view.InflateException: Binary XML file line #17: Error inflating class android.support.v7.internal.widget.ActionBarOverlayLayout, vous devez :

extend the appcompat v21 instead of ActionBarActivity use FragmentActivity instead of getSupportActionBar() use a theme which inherits from Theme.AppCompat.(for example Light or NoActionBar)

Aussi, ActionBar.TabListener, ActionBar.OnNavigationListener : action modes de navigation bar sont obsolètes et non pris en charge par inline barres d'action de la barre d'outils . Pensez à utiliser d'autres modes de navigation commune à la place.

Doc Source :  https://developer.android.com/reference/android/support/v7/app/ActionBar.html#addTab(android.support.v7.app.ActionBar.Tab)



2Vivek Shah @

ce est le code de travail ... copmactv7_api5 utilisant ... autre étapes sont les mêmes

getActionBar()
3user3871754 @

Le problème était beaucoup plus profond qu'il n'y paraît.

Mon code est correct. Tous les conseils dans le sujet concerné et correcte .

Il se est avéré que les bibliothèques externes contiennent les anciennes versions import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar.Tab; import android.support.v7.app.ActionBarActivity; public class MainActivity extends ActionBarActivity implements ActionBar.TabListener { AppSectionsPagerAdapter mAppSectionsPagerAdapter; ViewPager mViewPager; @SuppressWarnings("deprecation") public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.admin_main_tab); // Create the adapter that will return a fragment for each of the three // primary sections // of the app. mAppSectionsPagerAdapter = new AppSectionsPagerAdapter( getSupportFragmentManager()); // Set up the action bar. final ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // Set up the ViewPager, attaching the adapter and setting up a listener // for when the // user swipes between sections. mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mAppSectionsPagerAdapter); mViewPager .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { // When swiping between different app sections, select // the corresponding tab. // We can also use ActionBar.Tab#select() to do this if // we have a reference to the // Tab. actionBar.setSelectedNavigationItem(position); } }); // For each of the sections in the app, add a tab to the action bar. for (int i = 0; i < mAppSectionsPagerAdapter.getCount(); i++) { // Create a tab with text corresponding to the page title defined by // the adapter. // Also specify this Activity object, which implements the // TabListener interface, as the // listener for when this tab is selected. actionBar.addTab(actionBar.newTab() .setText(mAppSectionsPagerAdapter.getPageTitle(i)) .setTabListener(this)); } } /** * A {@link FragmentPagerAdapter} that returns a fragment corresponding to * one of the primary sections of the app. */ public static class AppSectionsPagerAdapter extends FragmentPagerAdapter { public AppSectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { switch (i) { case 0: return new AdminSettings(); default: Fragment fragment = new AdminSettings(); return fragment; } } @Override public int getCount() { return 3; } @Override public CharSequence getPageTitle(int position) { return "Section " + (position + 1); } } @Override public void onTabReselected(Tab arg0, android.support.v4.app.FragmentTransaction arg1) { // TODO Auto-generated method stub } @Override public void onTabSelected(Tab tab, android.support.v4.app.FragmentTransaction arg1) { mViewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab arg0, android.support.v4.app.FragmentTransaction arg1) { // TODO Auto-generated method stub } } , qui ne supporte pas support-v4 mais seulement MATERIAL DESIGN(appcompat-v7:21)

Ce est la raison pour laquelle appcompat-v7:20

Mise à jour ActionBar() InflateException error-inflating-class. dans toutes les bibliothèques externes va résoudre le problème .

Mon build.gradle dans autre sujet :

http://stackoverflow.com/questions/26888089/multiple-dex-files-define-landroid-support-v4 .