После перехода на Android Studio 3.2, API 28, в макете приложения появляется следующая ошибка:
Макет в макете не имеет объявления в папке базового макета; это может привести к сбоям при запросе ресурса в конфигурации, не соответствующей этому квалификатору.
Один из макетов, при котором я получаю эту ошибку:
<?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>
Я получаю сообщение об ошибке в первой строке первого LinearLayout.
Кто-нибудь знает, как решить эту ошибку?
Спасибо
ОБНОВЛЕНИЕ: ответил на мой вопрос, что решило проблему для меня
android
xml
android-studio
L Kemp
источник
источник
Ответы:
В моем случае закрытие и повторное открытие студии Android решило проблему. Перестройка проекта или очистка кеша не помогли.
источник
Вы также можете попробовать это:
Файл => Недействительный кеш / перезапуск => Недействительный и перезапуск.
источник
В моем случае это было использование заглавных букв в имени файла. Я оставил все строчными буквами и это было исправлено.
источник
Если вы разрабатываете свой макет: layout-sw320dp layout-sw480dp layout-sw600dp layout-sw720dp
вы должны добавить макет по умолчанию следующим образом:
источник
Я получил эту ошибку при перемещении файлов макета между модулями Gradle . Мне не нужно было заходить так далеко, чтобы аннулировать кеши, поскольку это разрешилось само, когда я перезапускал
Android Studio
и очищал проект . Похоже, это ошибка IDE .источник
В моем случае я решил это следующим образом :
Android сообщает мне эту ошибку идентификатора: MissingDefaultResource, как говорится в документации:
<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">
Но это простое решение, потому что вы лишаетесь ресурса в Android.
Я решаю это с помощью опции файловой системы . Если Android сообщает вам об отсутствии ресурса, это означает, что чего-то не хватает, и вам следует его пополнить.
вам нужно перейти в \ app \ src \ main \ res
возможно: щелкните правой кнопкой мыши в отсутствующей папке файла, отобразите в Exporer и вернитесь в \ app \ src \ main \ res
Вы должны найти
Вы должны найти, где файлы отсутствуют. В моем случае этого нет в / layout
источник
я только что сделал
Build > Clean Project
источник
В моем случае эта проблема была вызвана прописной буквой. Неправильные символы, такие как "-", также могут вызывать проблему. Я изменил имя с
Activity_disease.xml
на,activity_disease.xml
и проблема исправлена.источник
У меня ничего не работало, как восстановление проекта или признание кеша недействительным. В моем случае закрытие и повторное открытие студии Android решило проблему .
источник
В моем случае кажется, что Google ожидал (или, по крайней мере, принимал) разные имена между разными макетами; У меня были
time_dialog.xml
и аtime_dialog_landscape.xml
. Переименование последнего, чтобыtime_dialog.xml
устранить проблему.источник
Я решил эту проблему, просто синхронизировав проект с gradle
источник
Для меня следующие шаги заставили его работать:
источник
strings.xml
, я согласен с этимЭта проблема, похоже, возникает из-за того, что студия или компилятор не может найти файл ресурсов в папке базового макета. Чтобы решить эту проблему, вам может потребоваться создать файл в разных папках макета. Если вы используете папки макетов v21, v25 и т. Д. Для разработки макетов для различных целевых устройств, вам также может потребоваться разместить туда свои файлы ресурсов.
источник
В моем случае это предупреждение появилось из-за «неправильного» символа (точки) в имени значения:
<dimen name="dp.divider.xlarge">24dp</dimen>
Удаление точек (щелчок правой кнопкой мыши по имени, затем рефакторинг-переименование в Android Studio) решило проблему.
источник
Поздно на вечеринку, но мой случай отличается от приведенного выше.
Я просто переименовал ресурс, и он заработал.
На самом деле имя моего ресурса было ic_menu_black_24dp.xml, поэтому оно конфликтовало с ресурсом меню Android.
источник
У меня сработало удаление атрибута id
из ресурса макета.
источник
Что для меня решило:
В Android Studio щелкните правой кнопкой мыши имя файла в каталоге макета и выберите « Переформатировать код». , не устанавливая специальный флажок на следующем экране.
Не уверен, что именно здесь происходит под капотом, но это сработало.
источник
У меня возникла проблема после копирования / вставки кода в файл макета XML, но я исправил ее, просто создав файл вручную. Очень странно, поскольку код был точно таким же, но каким-то образом исправил эту проблему. Я попытался перезапустить и выполнить исправление «File => Invalidate Caches / Restart => Invalidate and Restart», но проблема была устранена только путем ручного воссоздания файла.
источник
Обратите внимание, что когда вы используете разные версии макета, такие как ( Large / Small / Nornal ), тогда у вас должна быть одна и та же основная папка макета. вот так
источник
(1) Удалите исходный макет.
(2) Добавьте макет еще раз.
Шаг 1
Шаг 2
источник
В моем случае отображалась та же ошибка, потому что файл макета и имя файла макета были разными.
Мой случай: макет -> макет my_layout_land -> my_layout
Я решил это, сделав оба имени файла одинаковыми. Потому что, если вы используете layout-land и у вас есть файл в layout-land, тогда у вас также должен быть файл в папке layout.
источник
Я скопировал файлы xml в папку с помощью проводника Windows. Похоже, это вызвало проблему с кодировкой. После удаления файлов и копирования их в Android Studio проблема была решена.
источник
Очистить или перестроить проект достаточно для индексации макета.
Как перестроить и запустить проект Android из командной строки
источник