2016-03-11 2 views
0

Я новичок в разработке android. Я создаю свое первое приложение, которое отлично работает на Android версии 5.0 и выше, но дает ниже упомянутое исключение на устройствах ниже 5.0.Получение исключения для android 4.2, но отлично работает на android 5.0

Я использую следующую библиотеку

com.android.support:appcompat-v7:23.2.0 
com.android.support:design:23.2.0 

Исключение состоит в следующем

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.news.example/com.news.firstapp.MainActivity}: 
android.view.InflateException: Binary XML file line #17: Error inflating class android.support.design.widget.NavigationView 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358) 
at android.app.ActivityThread.access$600(ActivityThread.java:156) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:153) 
at android.app.ActivityThread.main(ActivityThread.java:5299) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class android.support.design.widget.NavigationView 
at android.view.LayoutInflater.createView(LayoutInflater.java:613) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129) 
at com.news.firstapp.MainActivity.onCreate(MainActivity.java:36) 
at android.app.Activity.performCreate(Activity.java:5182) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)  
at android.app.ActivityThread.access$600(ActivityThread.java:156)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)  
at android.os.Handler.dispatchMessage(Handler.java:99)  
at android.os.Looper.loop(Looper.java:153)  
at android.app.ActivityThread.main(ActivityThread.java:5299)  
at java.lang.reflect.Method.invokeNative(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:511)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)  
at dalvik.system.NativeStart.main(Native Method)  
Caused by: java.lang.reflect.InvocationTargetException 
at java.lang.reflect.Constructor.constructNative(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)  
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)  
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)  
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)  
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)  
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)  
at com.news.firstapp.MainActivity.onCreate(MainActivity.java:36)  
at android.app.Activity.performCreate(Activity.java:5182)  
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)  
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)  
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)  
at android.app.ActivityThread.access$600(ActivityThread.java:156)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)  
at android.os.Handler.dispatchMessage(Handler.java:99)  
at android.os.Looper.loop(Looper.java:153)  
at android.app.ActivityThread.main(ActivityThread.java:5299)  
at java.lang.reflect.Method.invokeNative(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:511)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)  
at dalvik.system.NativeStart.main(Native Method)  
Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f02004d 
at android.content.res.Resources.getValue(Resources.java:1038) 
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:268) 
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:178) 
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173) 
at android.support.v7.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:421) 
at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.prepareMenuItems(NavigationMenuPresenter.java:495) 
at android.support.design.internal.NavigationMenuPresenter$NavigationMenuAdapter.update(NavigationMenuPresenter.java:436) 
at android.support.design.internal.NavigationMenuPresenter.updateMenuView(NavigationMenuPresenter.java:112) 
at android.support.design.widget.NavigationView.inflateMenu(NavigationView.java:241) 
at android.support.design.widget.NavigationView.<init>(NavigationView.java:169) 
at android.support.design.widget.NavigationView.<init>(NavigationView.java:95) 
at java.lang.reflect.Constructor.constructNative(Native Method)  
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)  
at android.view.LayoutInflater.createView(LayoutInflater.java:587)  
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)  
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)  
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)  
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)  
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:267)  
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129)  
at com.news.firstapp.MainActivity.onCreate(MainActivity.java:36)  
at android.app.Activity.performCreate(Activity.java:5182)  
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)  
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)  
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)  
at android.app.ActivityThread.access$600(ActivityThread.java:156)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1340)  
at android.os.Handler.dispatchMessage(Handler.java:99)  
at android.os.Looper.loop(Looper.java:153)  
at android.app.ActivityThread.main(ActivityThread.java:5299)  
at java.lang.reflect.Method.invokeNative(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:511)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)  
at dalvik.system.NativeStart.main(Native Method)  

Я застрял в этой точке. Ваша помощь будет очень полезна.

Главная activity.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer" /> 

</android.support.v4.widget.DrawerLayout> 

appbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="com.news.fatafat.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

     <android.support.design.widget.TabLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/tabLayout" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      app:tabMode="scrollable" 
      app:tabGravity="fill" 
      /> 

    </android.support.design.widget.AppBarLayout> 



    <!--<android.support.design.widget.FloatingActionButton--> 
     <!--android:id="@+id/fab"--> 
     <!--android:layout_width="wrap_content"--> 
     <!--android:layout_height="wrap_content"--> 
     <!--android:layout_gravity="bottom|end"--> 
     <!--android:layout_margin="@dimen/fab_margin"--> 
     <!--android:src="@android:drawable/ic_dialog_email" />--> 

</android.support.design.widget.CoordinatorLayout> 

build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 

    defaultConfig { 
     applicationId "com.news.firstapp" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.2.0' 
    compile 'com.android.support:design:23.2.0' 
} 

style.xml

<resources> 

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

    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 

</resources> 

styles.xml (v21)

<resources>> 

    <style name="AppTheme.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
     <item name="android:windowDrawsSystemBarBackgrounds">true</item> 
     <item name="android:statusBarColor">@android:color/transparent</item> 
    </style> 
</resources> 

файл манифеста

<?xml version="1.0" encoding="utf-8"?> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

<application 
    android:name=".app.AppController" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme.NoActionBar"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".Main2Activity" /> 
    <activity android:name=".NewschannelFeed" /> 
    <activity 
     android:name=".thirdNews" 
     android:label="@string/title_activity_city_news"></activity> 
</application> 

+0

вы используете этот android.support .design.widget.NavigationView –

+1

вы должны поделиться макетом своего основного вида деятельности. – Gunhan

+0

@HRaval да я использую – user1590595

ответ

0

Похоже, версия некоторых атрибутов, установленных в файле макета больше чем ваш minSDKVersion. Поэтому проверьте минимальный SDK и/или создайте разные файлы макета для разных SDK.

Edit:

<style name="AppTheme.NoActionBar" parent="AppTheme"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

Аналогично для styles.xml (v21)

+0

Я добавил build.gradle и макет. можете ли вы, пожалуйста, проверить – user1590595

+0

Можете ли вы добавить свой файл 'theme'? –

+0

Я не думаю, что у меня есть theme.xml – user1590595

0

Пожалуйста, убедитесь, что вы используете какой-либо из тем, которые требуют мин уровень API 21

<item name="android:textColorPrimary">#212121</item> 
<item name="android:textColorSecondary">#727272</item> 

выше два - всего лишь несколько примеров, если у вас есть! чем удалить те из вашей темы и создать отдельный файл для уровня 21 api, и чем он может работать, он работал для меня. Удачи.

Надежда я помог

+0

Я добавил styles.xml Есть ли что-то, что нельзя использовать – user1590595

+0

Для справки http://stackoverflow.com/questions/30709419/error-inflating-class-android-support-design-widget-navigationview – Bikash

0

хорошо appcompact деятельности я использую эти два стиля

style.xml

 <resources> 
      <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
       <item name="windowActionBar">false</item> 
       <item name="windowNoTitle">true</item> 
       <item name="android:windowDrawsSystemBarBackgrounds">true</item> 


       <item name="android:colorAccent">@color/colorPrimaryDark</item> 
       <item name="android:colorPrimary">@color/colorPrimary</item> 
       <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> 

    </style> 

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> 
    </resources> 

и V-21 -> style.xml

<resources> 

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

Удалите папку styles.xml (v21) и используйте следующую команду в своих стилях.xml. Этот стиль будет работать для всех версии для Android.Я добавил тот же стиль более чем в 10 приложениях, поэтому он надежный и проверенный.

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorPrimary</item> 

    <item name="android:textColorPrimary">@color/black</item> 
    <item name="android:windowBackground">@color/windowBackground</item> 
    <item name="patternViewStyle">@style/PatternView.Holo</item> 
    </style> 

и использовать вышеупомянутый стиль в вашей деятельности как этот

<activity 
     android:name=".activity.ContactUsActivity" 
     android:screenOrientation="portrait" 
     android:theme="@style/MyMaterialTheme.Base" /> 

Позвольте мне знать, если вы все еще сталкиваются с какой-либо issue.Mark это, если это помогает

 Смежные вопросы

  • Нет связанных вопросов^_^