2016-09-30 2 views
0

質問を重複としてマークする前に、私は既に他の回答をチェックして何も働かなかった。アプリケーションはAndroid> = 5.0で動作しますが、Android 4.4.2や他のAndroid 4.xデバイスでは失敗します。Android 4.XでのみInflateException

これは、クラッシュが起こっているラインです。

@Override 
    public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) 
    { 
     View itemView = LayoutInflater.from(context).inflate(itemLayout, parent, false); 
     .......................... 

build.gradle

android { 
    compileSdkVersion 23 
    buildToolsVersion ANDROID_BUILD_TOOLS 

defaultConfig { 
    minSdkVersion 16 
    targetSdkVersion ANDROID_TARGET_SDK 
....................... 
} 


dependencies { 
compile 'com.android.support:appcompat-v7:23.1.0' 
compile 'com.android.support:design:23.1.0' 
compile 'com.android.support:recyclerview-v7:23.1.0' 
compile 'com.github.bumptech.glide:glide:3.5.2' 
....................... 
} 

STACKTRACE

android.view.InflateException: Binary XML file line #1: Error inflating class <unknown> 
                     at android.view.LayoutInflater.createView(LayoutInflater.java:620) 
                     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
                     at com.dyve.counting.FileExplorer.RecyclerAdapter.onCreateViewHolder(RecyclerAdapter.java:54) 
                     at com.dyve.counting.FileExplorer.RecyclerAdapter.onCreateViewHolder(RecyclerAdapter.java:18) 
                     at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5223) 
                     at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4449) 
                     at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4359) 
                     at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961) 
                     at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:438) 
                     at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333) 
                     at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:562) 
                     at android.support.v7.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:171) 
                     at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2900) 
                     at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3071) 
                     at android.view.View.layout(View.java:14858) 
                     at android.view.ViewGroup.layout(ViewGroup.java:4646) 
                     at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1037) 
                     at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:747) 
                     at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42) 
                     at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1133) 
                     at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:760) 
                     at android.view.View.layout(View.java:14858) 
                     at android.view.ViewGroup.layout(ViewGroup.java:4646) 
                     at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043) 
                     at android.view.View.layout(View.java:14858) 
                     at android.view.ViewGroup.layout(ViewGroup.java:4646) 
                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 
                     at android.widget.FrameLayout.onLayout(FrameLayout.java:388) 
                     at android.view.View.layout(View.java:14858) 
                     at android.view.ViewGroup.layout(ViewGroup.java:4646) 
                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1673) 
                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527) 
                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1436) 
                     at android.view.View.layout(View.java:14858) 
                     at android.view.ViewGroup.layout(ViewGroup.java:4646) 
                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 
                     at android.widget.FrameLayout.onLayout(FrameLayout.java:388) 
                     at android.view.View.layout(View.java:14858) 
                     at android.view.ViewGroup.layout(ViewGroup.java:4646) 
                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1673) 
                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527) 
                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1436) 
                     at android.view.View.layout(View.java:14858) 
                     at android.view.ViewGroup.layout(ViewGroup.java:4646) 
                     at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453) 
                     at android.widget.FrameLayout.onLayout(FrameLayout.java:388) 
                     at android.view.View.layout(View.java:14858) 
                     at android.view.ViewGroup.layout(ViewGroup.java:4646) 
                     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2035) 
                     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1792) 
                     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1047) 

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" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" > 

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/coordinator_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/app_bar_height" 
     android:theme="@style/ThemeOverlay.AppCompat.ActionBar" > 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@color/primary_color" 
      app:expandedTitleMarginStart="@dimen/title_margin" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed" > 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?actionBarSize" 
       app:contentInsetStart="@dimen/title_margin" 
       app:layout_collapseMode="pin" 
       android:background="@color/primary_color"/> 

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

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

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:clipToPadding="false" 
     android:paddingBottom="48dp" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

xmlファイルの最初の行は次のとおりです。<android.support.v4.widget.DrawerLayout

私はこれが起こっていると、それは私にナットを駆動している理由を見つけ出すように見えることはできません。私は大いに助けていただければ幸いです。

+0

itemLayoutとは何ですか? –

+0

@ Code-Apprentice整数です。私は全体の機能で質問を編集しました。 –

+0

なぜintではなく整数ですか?あなたはどこに価値を置いていますか? –

答えて

1

問題が何かを突き止める2日を過ごした後、私は原因を考え出しました。 :XML drawableの色の参照としての属性の使用。 API < 21では、attrsを使用してxml drawableで色付けすることはできません。ですから、カラーリソース(@ color/YOURS_COLOR)への参照を使用するか、または#RGBフォーマットを使用するだけです。テーマに依存する色でxml drawableを使用する場合は、テーマごとにdrawableを作成する必要があります。

解決方法:誰かが例外に遭遇した場合、エラーメッセージがより明示的に表示されるため、変数ウィンドウでそのエラーメッセージの原因を調べて原因を調べる必要があります。

相対レイアウトの背景を@ drawable/selectable_background.xmlから別の色に変更したところ、すべて正常に動作しました。 enter image description here

関連する問題