studio - Error ''No se ha encontrado ningún identificador de recurso'' con el proyecto de ejemplo de Android
recursos para android studio (4)
Estoy tratando de abrir el proyecto de ejemplo de Android - Navigation Drawer en Android Studio, pero obtuve un error mientras lo construía.
Estos son los pasos para reproducirlo:
- Desde la página de bienvenida de Android Studio, seleccione Importar un ejemplo de código de Android
- Busque el cajón de navegación , selecciónelo y haga clic en ''Siguiente''
- Especifique la ubicación del proyecto y haga clic en ''Finalizar''
Error: (43) No se encontró un identificador de recurso para el atributo ''layoutManager'' en el paquete ''com.example.android.navigationdrawer''
La versión de Android Studio es - 1.4 Beta 4
Gracias de antemano por cualquier ayuda.
¿Estás seguro de que Gradle resolvió todas las dependencias? Tuve el mismo problema cuando ocasionalmente quité las bibliotecas de soporte de Recyclerview de las dependencias:
compile ''com.android.support:recyclerview-v7:25.0.1''
Ciertamente, aún puede definir LayoutManagers y más a través de xml. Aquí hay un ejemplo usando el GridLayoutManager nativo:
<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" />
Si desea utilizar un LayoutManager personalizado, siga las reglas definidas aquí:
Simplemente actualice el archivo build.gradle (módulo) a la versión más reciente, lo probé y todo está bien ahora.
referencias:
https://github.com/googlesamples/android-NavigationDrawer/issues/9
El compilador no puede encontrar este atributo en el activity_navigation_drawer.xml
:
app:layoutManager="LinearLayoutManager"
Para arreglar esto
Elimine este atributo del XML para que su Recyclerview tenga este aspecto:
<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"/>
presiona el botón Gradle Sync
En
NavigationDrawerActivity
, agregue las siguientes 2 líneas de código en su OnCreate ();LinearLayoutManager mLinearLayoutmanager = new LinearLayoutManager(this); mDrawerList.setLayoutManager(mLinearLayoutmanager);
Entonces tu código ahora se ve así:
@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);
....
Buena suerte
Edición : la razón por la cual este código xml original ya no funciona es más probable que el espacio de nombres xmlns:app="http://schemas.android.com/apk/res-auto"
ya no sea compatible con el atributo layoutManager
.
Puede encontrar más información sobre el espacio de nombres aquí: https://.com/a/26692768/3708094