Bonne journée, pouvez-vous m'aider? J'ai eu cette erreur lors de la compilation/exécution de mon code sur un émulateur. Ceci est l'exemple de tutoriel que j'avais l'habitude de faire. J'ai utilisé min Target API - 15 et compilé le dernier dégradé 'com.Android.support:design:23.0.0'
http://www.Android4devs.com/2015/06/navigation-view-material-design-support.html
Erreur de code:
AndroidRuntime: Java.lang.RuntimeException: impossible de démarrer l'activité ComponentInfo {com.eccp.projects.ecosavers.ecosavers/com.eccp.projects.ecosavers.ecosavers.activities.MainActivity.MainActivity}: Android.view.InflateException: XML binaire ligne de fichier n ° 29: Ligne de fichier XML binaire n ° 29: erreur lors du gonflage de la classe Android.support.design.widget.NavigationView 12-29 06: 43: 39.409 3448-3448/com.eccp .projects.ecosavers.ecosavers E/AndroidRuntime: sur Android.app.ActivityThread.performLaunchActivity (ActivityThread.Java:2416)}
E/AndroidRuntime: Causée par: Android.view.InflateException: ligne de fichier XML binaire n ° 29: ligne de fichier XML binaire n ° 29: erreur lors du gonflage de la classe Android.support.design.widget.NavigationView
Voici mes codes: MainActivity.Java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//SET my own toolbar
toolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
mNavigationView = (NavigationView) findViewById(R.id.navigation_view);
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
if (menuItem.isChecked()) menuItem.setChecked(false);
else menuItem.setChecked(true);
//Closing drawer on item click
mDrawerlayout.closeDrawers();
//Check to see which item was being clicked and perform appropriate action
switch (menuItem.getItemId()) {
//Replacing the main content with ContentFragment Which is our Inbox View;
case R.id.events:
Toast.makeText(getApplicationContext(), "Inbox Selected", Toast.LENGTH_SHORT).show();
Eco_events fragment = new Eco_events();
Android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment);
fragmentTransaction.commit();
return true;
// show a toast on click
case R.id.activities:
Toast.makeText(getApplicationContext(), "Send Selected", Toast.LENGTH_SHORT).show();
return true;
case R.id.spam:
Toast.makeText(getApplicationContext(), "Spam Selected", Toast.LENGTH_SHORT).show();
return true;
default:
Toast.makeText(getApplicationContext(), "Somethings Wrong", Toast.LENGTH_SHORT).show();
return true;
}
}
});
// Initializing Drawer Layout and ActionBarToggle
mDrawerlayout = (DrawerLayout) findViewById(R.id.drawer);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerlayout, toolbar, R.string.drawerOpened, R.string.drawerOpened) {
@Override
public void onDrawerClosed(View drawerView) {
// Code here will be triggered once the drawer closes as we dont want anything to happen so we leave this blank
super.onDrawerClosed(drawerView);
}
@Override
public void onDrawerOpened(View drawerView) {
// Code here will be triggered once the drawer open as we dont want anything to happen so we leave this blank
super.onDrawerOpened(drawerView);
}
};
//Setting the actionbarToggle to drawer layout
mDrawerlayout.setDrawerListener(mDrawerToggle);
//calling sync state is
mDrawerToggle.syncState();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
XML: activity_main.xml
<Android.support.v4.widget.DrawerLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/drawer"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true"
tools:context=".MainActivity">
<LinearLayout
Android:layout_height="match_parent"
Android:layout_width="match_parent"
Android:orientation="vertical"
>
<include
Android:id="@+id/tool_bar"
layout="@layout/toolbar"
/>
<FrameLayout
Android:id="@+id/frame"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
</FrameLayout>
</LinearLayout>
<Android.support.design.widget.NavigationView
Android:id="@+id/navigation_view"
Android:layout_height="match_parent"
Android:layout_width="wrap_content"
Android:layout_gravity="start"
app:headerLayout="@layout/header"
app:menu="@menu/drawer"
/> </Android.support.v4.widget.DrawerLayout>
Suivez ces étapes:
Project->Open Module Settings
.Merci pour vos préoccupations, je l'apprécie. J'ai trouvé la réponse à (ma) cette question enfin.
Erreur de gonflage de la classe Android.support.design.widget.NavigationView # 28 ou # 29
La solution qui fonctionne pour moi est que vous devez faire correspondre votre support design library
et votre support AppCompat Library
. Dans le module gradle,
changer la version de gradle (le n ° de bibliothèque souhaité) Vous pouvez également trouver la dernière version de gradle dans le lien que j'ai fourni, mais je vous suggère de vérifier dans votre module gradle (La 2e image, puisqu'ils sont les premiers à mettre à jour la construction de gradle Ensuite, dans mon module de gradation - compile: ...
a été mis en surbrillance, ce qui signifie qu’il existe une version plus récente, il suffit de changer le n °, par exemple, 24.0.0
compile si elle est stable, pas une prévisualisation), dans le temps moyen, le mien est 23.1.1
.
-> plus gradle lib- gradleplease.appspot.com
compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:design:23.1.1'
:) Ça marche pour moi!
Observation (pour moi, comme j'ai changé/résolu cette erreur, la valeur 23.x.x
): si votre support-design
ne correspond pas à AppCompat-lib
produit # 28 et si votre AppCompat
ne correspond pas au support-design
produit # 29 . Essayez, peut-être que j'échange le #.
Vous obtenez cette erreur car vous avez besoin de la bibliothèque de support technique de Design.
Ouvrez le SDK Manager et téléchargez le référentiel de support Android, puis retrouvez la dernière version de la bibliothèque ici:
<Android-sdk>/extras/Android/m2repository/com/Android/support/design/23.0.1/design-23.0.1.aar
Copiez-le dans votre répertoire libs puis ajoutez la dépendance à votre build.gradle:
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile 'Android.support.design:design:23.0.1@aar'
}