android - programacion - El diseño<layout> en diseño no tiene ninguna declaración en la carpeta de diseño base
paleta de componentes android studio (8)
En mi caso el cierre y reapertura de Android Studio solucionó el problema. La reconstrucción del proyecto o la invalidación de la memoria caché no ayudó.
Después de migrar de Eclipse a la nueva versión de Android Studio 3.2, API 28, recibo el siguiente error en el diseño de mi aplicación:
El diseño en diseño no tiene ninguna declaración en la carpeta de diseño base; Esto puede provocar bloqueos cuando se consulta el recurso en una configuración que no coincide con este calificador.
Uno de los diseños que recibo este error es:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@null" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal"
android:adjustViewBounds="true"
android:contentDescription="@string/hello_world"
android:src="@drawable/loading_top" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:adjustViewBounds="true"
android:contentDescription="@string/hello_world"
android:src="@drawable/loading_bottom" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@string/hello_world"
android:background="@color/white"
android:layout_marginBottom="5dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:src="@drawable/loading_logo" />
<ImageView
android:id="@+id/loading"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="center|center_vertical"
android:layout_marginBottom="0dp"
android:layout_marginTop="0dp"
android:contentDescription="@string/hello_world"
android:scaleType="fitXY"
android:src="@null" />
</FrameLayout>
</LinearLayout>
Recibo el error en la primera línea del primer LinearLayout.
¿Alguien sabe como resolver este error?
Gracias
ACTUALIZACIÓN: Parece ser un problema de codificación. Copié los archivos xml en la carpeta usando el Explorador de Windows. Después de eliminar los archivos y copiarlos dentro de Android Studio, el problema se resolvió.
En mi caso lo resolví con this :
Android me dice este error de MissingDefaultResource : MissingDefaultResource como dice la documentación:
Si un recurso solo se define en carpetas con calificadores como -land o -en, y no hay una declaración predeterminada en la carpeta base (diseño o valores, etc.), la aplicación se bloqueará si se accede a ese recurso en un dispositivo donde el dispositivo está en una configuración que falta el calificador dado.
Como un caso especial, los objetos dibujables no tienen que especificarse en la carpeta base; si hay una coincidencia en una carpeta de densidad (como drawable-mdpi), esa imagen se usará y escalará. Sin embargo, tenga en cuenta que si solo especifica un drawable en una carpeta como drawable-en-hdpi, la aplicación se bloqueará en las configuraciones regionales que no sean en inglés.
Es posible que haya escenarios en los que tenga un recurso, como un dibujable -fr, al que solo se hace referencia desde otro recurso con los mismos calificadores (como el estilo -fr), que a su vez tiene alternativas seguras. Sin embargo, esto todavía hace posible que alguien haga referencia accidentalmente al dibujo y se bloquee, por lo que es más seguro crear un respaldo ficticio predeterminado en la carpeta base. Alternativamente, puede eliminar el problema agregando herramientas: ignore = "MissingDefaultResource" en el elemento.
(Este escenario ocurre con frecuencia con las traducciones de cadenas, donde puede eliminar el código y los recursos correspondientes, pero olvide eliminar una traducción. Hay un identificador de problema dedicado para ese escenario, con el identificador de traducción extra).
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingDefaultResource" <!--this-->
android:layout_width="match_parent"
android:layout_height="match_parent">
Pero esta es la solución fácil, porque haces que falte el recurso en Android.
Resuelvo esto con la opción del sistema de archivos . Si Android te dice que faltan recursos, significa que falta algo y debes reponerlo.
deberías ir a / app / src / main / res
quizás: haga clic derecho en la carpeta que falta en el archivo, muestre en Exporer y vuelva a / app / src / main / res
Deberías encontrar
/layout
/layout-normal
/layout-large
/some more folders
Debes encontrar dónde faltan los archivos. En mi caso falta en / layout.
En mi caso, esta advertencia apareció debido a un carácter "incorrecto" (punto) utilizado en el nombre de valor:
<dimen name="dp.divider.xlarge">24dp</dimen>
La eliminación de puntos (clic con el botón derecho en un nombre, luego Refactor-Rename en Android Studio) resolvió el problema.
En mi caso, parece que Google solía esperar (o al menos aceptar) nombres diferentes entre diferentes diseños; Tuve un time_dialog.xml
y un time_dialog_landscape.xml
. Cambiar el nombre de este último a time_dialog.xml
solucionó el problema.
Este problema parece estar ocurriendo porque Studio o el compilador no pueden encontrar el archivo de recursos dentro de la carpeta de diseño base. Para resolver el problema, es posible que necesite crear el archivo en diferentes carpetas de diseño. Si está utilizando carpetas de diseño v21, v25, etc. para diseñar diseños para diferentes dispositivos de destino, es posible que también deba colocar sus archivos de recursos allí.
Recibí este error al mover archivos de diseño entre los módulos de Gradle. No tuve que ir tan lejos como para invalidar los cachés, ya que se resolvió solo cuando reinicié Android Studio y limpié el proyecto. Parece que es un error IDE.
Si diseña su diseño: layout-sw320dp layout-sw480dp layout-sw600dp layout-sw720dp
Debes agregar diseño por defecto como este: