2015-12-29 34 views
3

美好的一天,你能帮我一个忙吗?编译/在模拟器上运行我的代码时出现此错误。这是我以前制作的示例教程。我用分钟目标API - 15和编译最新gradle这个 'com.android.support:design:23.0.0'类未找到Android支持设计小工具NavigationView

http://www.android4devs.com/2015/06/navigation-view-material-design-support.html

代码错误:

AndroidRuntime:了java.lang.RuntimeException:无法启动活动ComponentInfo {com.eccp.projects .ecosavers.ecosavers/com.eccp.projects.ecosavers.ecosavers.activities.MainActivity}:android.view.InflateException:二进制XML文件行#29:二进制XML文件行#29:错误充气类android.support.design。 widget.NavigationView 12-29 06:43:39.409 3448-3448/com.eccp.projects.ecosavers.ecosavers E/AndroidRuntime:在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)

E/AndroidRuntime:产生的原因:android.view.InflateException :二进制XML文件行#29:二进制XML文件行#29:错误充气类android.support.design.widget.NavigationView

这里是我的代码: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> 
+1

你可以发布完整的stacktrace吗? –

+0

你可以发布应用程序build.gradle文件吗? – Raghunandan

+0

@Raghunandan - 你是什么意思?我用来编译的gradle列表? – RoCk

回答

0

,因为你所需要的设计支持库您收到此错误。

打开SDK管理器,下载Android的支持库,比你可以在这里找到库的最后一个版本:

<android-sdk>/extras/android/m2repository/com/android/support/design/23.0.1/design-23.0.1.aar 

拷贝在你的库目录,然后依赖添加到您的build.gradle:

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 

dependencies { 
    compile 'android.support.design:design:[email protected]' 
} 
+0

这是你的意思吗?编译'com.android.support:design:23.0.0' 我已经这个lib。和gradle已经编译好了:( 。 我将在YouTube上搜索如何发布此堆栈跟踪。 – RoCk

12

按照这个步骤:

  1. 右击t点击您的Project->Open Module Settings
  2. 然后打开“依存关系”选项卡。
  3. 单击+符号,然后选择库依赖关系。您将看到一个名为“选择库依赖关系”的弹出窗口。
  4. 那里输入“com.android.support”。然后点击搜索图标。

  • 现在选择设计库。并点击确定。
  • 2

    谢谢您的关注,我很感激。我终于找到了(我的)这个问题的答案。

    错误充气类android.support.design.widget。NavigationView#28或#29

    适用于我的解决方案是,您必须匹配您的support design library和您的支持AppCompat Library。在gradle这个模块,

    Locate Gradle

    变化gradle这个版本(你需要的库中没有。)您也可以找到,我已经给出了链接的最新gradle这个身材,但我建议您在gradle这个模块中检查(第二张图片,因为他们是第一次更新gradle build,然后在我的gradle模块中 - compile: ...已经被突出显示,这意味着有一个更新的版本,只需更改编号,例如24.0.0如果编译稳定而不是预览),同时,我的是23.1.1

    - >more gradle lib- gradleplease.appspot.com

    compile 'com.android.support:appcompat-v7:23.1.1'

    compile 'com.android.support:design:23.1.1'

    Gradle Dependencies

    :)这对我的作品!

    观察(对于我来说,当我改变了/解决了这个错误,价值23.x.x):如果你的support-designAppCompat-lib产生#28,如果你AppCompat匹配不匹配support-design产生#29。试试吧,也许我换了#。