Après avoir migré d'Eclipse vers la nouvelle version d'Android Studio 3.2, API 28, le message d'erreur suivant s'affiche sur la présentation de mon application:
La mise en page dans la mise en page n'a pas de déclaration dans la mise en page de base dossier; cela peut entraîner des plantages lorsque la ressource est interrogée dans un fichier configuration qui ne correspond pas à ce qualificatif
Une des mises en page que j'obtiens cette erreur est:
<?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>
Je reçois l'erreur sur la première ligne du premier LinearLayout.
Est-ce que quelqu'un sait comment résoudre cette erreur?
Je vous remercie
UPDATE: Cela semble être un problème d'encodage. J'avais copié les fichiers XML dans le dossier en utilisant l'Explorateur Windows. Après avoir supprimé les fichiers et les avoir copiés dans Android Studio, le problème a été résolu.
Dans mon cas, la fermeture et la réouverture du studio Android ont résolu le problème. La reconstruction du projet ou l’invalidation du cache n’a pas aidé.
Si vous concevez votre mise en page: layout-sw320dp layout-sw480dp layout-sw600dp layout-sw720dp
vous devriez ajouter une mise en page par défaut.
Dans mon cas, j'ai résolu cela avec this :
l'androïde me dit ceci id-error: MissingDefaultResource comme le dit la documentation:
Si une ressource est uniquement définie dans des dossiers avec des qualificateurs tels que -land ou -en, et s'il n'y a pas de déclaration par défaut dans le dossier de base (mise en page ou valeurs, etc.), l'application se bloquera si l'utilisateur accède à cette ressource via un fichier Périphérique où le périphérique est dans une configuration sans la donnée qualificatif.
En tant que cas particulier, il n'est pas nécessaire de spécifier les éléments dessinables dans la base dossier; s'il existe une correspondance dans un dossier de densité (tel que drawable-mdpi), cette image sera utilisée et mise à l'échelle. Notez cependant que si vous spécifiez uniquement un dessin dans un dossier comme drawable-en-hdpi, le fichier L'application va planter dans des environnements non anglais.
Il peut y avoir des scénarios où vous avez une ressource, telle que -fr drawable, qui est référencé uniquement à partir d’une autre ressource avec le mêmes qualificatifs (comme un style -fr), qui a lui-même safe les replis. Cependant, cela permet toujours à quelqu'un de référence accidentellement le drawable et crash, il est donc plus sûr de créer un repli factice par défaut dans le dossier de base. Sinon, vous pouvez supprimer le problème en ajoutant des outils: ignore = "MissingDefaultResource" sur l'élément.
(Ce scénario se produit fréquemment avec des traductions de chaînes, où vous pouvez supprimer le code et les ressources correspondantes, mais oubliez Supprimer une traduction. Il existe un identifiant de problème dédié pour ce scénario, Avec l'identifiant ExtraTranslation. )
<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">
Mais c’est la solution facile, car vous faites rater le recours à Android.
Je résous le problème avec l’option système de fichiers. Si Android vous informe sur le manque de ressource, cela signifie qu'il manque quelque chose et vous devriez le réapprovisionner.
vous devriez aller à\app\src\main\res
peut-être: clic droit dans le dossier manquant du fichier, afficher dans Exporer, puis revenir à\app\src\main\res
Vous devriez être trouver
/layout
/layout-normal
/layout-large
/some more folders
Vous devriez trouver où les fichiers sont manquants. Dans mon cas, il manque dans/layout
Dans mon cas, il semble que Google attendait (ou au moins accepte) différents noms entre différentes mises en page; J'ai eu un time_dialog.xml
et un time_dialog_landscape.xml
. Renommer ce dernier en time_dialog.xml
a résolu le problème.
Dans mon cas, cet avertissement est apparu en raison du caractère "incorrect" (point) utilisé dans la valeur name:
<dimen name="dp.divider.xlarge">24dp</dimen>
La suppression des points (clic droit sur un nom, puis Refactor-Rename dans Android Studio) a résolu le problème.
J'ai reçu cette erreur lors du déplacement de fichiers de présentation entre les modules Gradle. Je n'ai pas eu à aller jusqu'à invalider les caches car cela s'est résolu lorsque j'ai redémarré Android Studio et nettoyé le projet. Semble être un bogue IDE.
Ce problème semble se produire car studio ou le compilateur n'est pas en mesure de trouver le fichier de ressources dans le dossier de présentation de base. Pour résoudre le problème, vous devrez peut-être créer le fichier dans différents dossiers de présentation. Si vous utilisez des dossiers de présentation v21, v25, etc. pour la conception de présentations pour différents périphériques cibles, vous devrez peut-être également y placer vos fichiers de ressources.