Ошибка «Идентификатор ресурса не найден» с образцом проекта Android

Я пытаюсь открыть образец Android-проекта – Навигационный ящик в Android Studio, но получил ошибку при его создании.

Это шаги для его воспроизведения:

  1. На странице приветствия Android Studio выберите « Импортировать образец кода Android»
  2. Найдите навигационный ящик , выберите его и нажмите «Далее»,
  3. Укажите местоположение проекта и нажмите «Готово»

Ошибка: (43) Идентификатор ресурса не найден для атрибута layoutManager в пакете com.example.android.navigationdrawer '

Версия Android Studio – 1.4 Beta 4

Заранее благодарю за любую помощь.

Solutions Collecting From Web of "Ошибка «Идентификатор ресурса не найден» с образцом проекта Android"

Компилятор не может найти этот атрибут в файле activity_navigation_drawer.xml :

 app:layoutManager="LinearLayoutManager" 

Чтобы исправить это

  1. Удалите этот атрибут из XML, чтобы ваш Recyclerview выглядел следующим образом:

     <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"/> 
  2. Нажмите кнопку Gradle Sync

  3. В NavigationDrawerActivity добавьте следующие 2 строки кода в свой OnCreate ();

     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

Вы, безусловно, можете определить LayoutManagers и многое другое через xml. Вот пример использования собственного 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

Просто обновите файл build.gradle (модуль) до самой новой версии, я попробовал, и теперь все в порядке.

Рекомендации:

https://github.com/googlesamples/android-NavigationDrawer/issues/9

Вы уверены, что градле разрешили все зависимости? У меня была такая же проблема, когда я иногда удалял библиотеку поддержки recyclerview из зависимостей:

  compile 'com.android.support:recyclerview-v7:25.0.1'