2015-09-16 19 views
16

Androidスタジオのナビゲーションサンプルを開こうとしていますが、ビルド中にエラーが発生しました。エラーAndroidサンプルプロジェクトで「リソース識別子が見つかりません」

これらは、それを再現する手順は、次のとおりです

  1. のAndroidメーカーのウェルカムページから、のインポートナビゲーションドロワーため
  2. 検索をAndroidのコードサンプルを選択し、それを選択し、[次へ]
  3. をクリックしてください
  4. は、プロジェクトの場所を指定し、 '完了'

Error:(43) No resource identifier found for attribute 'layoutManager' in package 'com.example.android.navigationdrawer'

をクリックしてください

Androidスタジオのバージョンは - 1.4 Beta 4

ご協力いただきありがとうございます。

+0

があなたのGradleファイル –

+0

https://github.com/neokree/MaterialNavigationDrawer –

答えて

25

コンパイラはactivity_navigation_drawer.xmlでこの属性を見つけることができません。

<android.support.v7.widget.RecyclerView 
android:id="@+id/left_drawer" 
android:scrollbars="vertical" 
android:layout_width="240dp" 
android:layout_height="match_parent" 
android:layout_gravity="left|start" 
android:choiceMode="singleChoice" 
android:divider="@null"/> 

app:layoutManager="LinearLayoutManager" 

この

  1. を修正するには、あなたのRecyclerviewは次のようになりますので、XMLからこの属性を削除します

  2. Gradle Syncボタンを押す

  3. NavigationDrawerActivityで、OnCreate()に次の2行のコードを追加します。

    LinearLayoutManager mLinearLayoutmanager = new LinearLayoutManager(this); 
    mDrawerList.setLayoutManager(mLinearLayoutmanager); 
    

だからあなたのコードは次のようになります。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_navigation_drawer); 

    mTitle = mDrawerTitle = getTitle(); 
    mPlanetTitles = getResources().getStringArray(R.array.planets_array); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerList = (RecyclerView) findViewById(R.id.left_drawer); 

    LinearLayoutManager mLinearLayoutmanager = new LinearLayoutManager(this); 
    mDrawerList.setLayoutManager(mLinearLayoutmanager); 
    .... 

幸運

編集: この元のXMLコードはもはや働いている理由は、ありますおそらくxmlns:app="http://schemas.android.com/apk/res-auto"名前空間がlayoutManager属性をサポートしていない可能性があります。名前空間の

詳細情報はここで見つけることができます:https://stackoverflow.com/a/26692768/3708094

+2

作品おそらく少し推論なぜXMLコンフィグdoesntの仕事を投稿:私は時折依存関係からrecyclerviewサポートライブラリを削除し、同じ問題を抱えていました? – wal

+3

アンドロイドのサンプルは正しくコンパイルされません。 – Ahmed

2

あなたは確かにまだXMLを介しLayoutManagersなどを定義することができます。ここではネイティブGridLayoutManagerを使用した例です:

<android.support.v7.widget.RecyclerView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/posters_recycler_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:orientation="vertical" 
    app:layoutManager="android.support.v7.widget.GridLayoutManager" 
    app:reverseLayout="false" 
    app:spanCount="3" 
    app:stackFromEnd="false" /> 

あなたはここに定義されたルールに従うのlayoutManagerカスタムを使用する場合:

R.attr.html#layoutManager

0

あなたはGradleのは、すべての依存関係を解決することを確認していますか?

compile 'com.android.support:recyclerview-v7:25.0.1' 
関連する問題