Android Studio не может найти мои ресурсы

Android Studio не может скомпилировать мой тестовый проект, потому что не может разрешить ресурсы. Я пробовал разные настройки для каталога res в gradle.build, но ничего не получалось. Я пропустил что-то простое здесь? Это простой проект HelloWorld, в котором нет ничего индивидуального.

У меня есть следующая структура проекта, созданная мастером Android Studio (последняя версия 0.2.5):

введите здесь описание изображения

В моем AndroidManifest.xml есть обычная ссылка на имя приложения: @string/app_name Эта строка определена в main/res/values/strings.xml (выбрана на снимке экрана выше).

Ошибка, которую я получаю от IDE (Android Studio):

android-apt-compiler: [MyApplicationProject] C:\...\MyApplication\src\main\AndroidManifest.xml:6: error: 
Error: No resource found that matches the given name (at 'label' with value '@string/app_name').

Ошибка, которую я получаю из командной строки, когда запускаю "задачи gradle":

A problem occurred configuring root project 'MyApplicationProject'.
 > Failed to notify project evaluation listener.
    > Main Manifest missing from C:\...\MyApplicationProject\src\main\AndroidManifest.xml

person muetzenflo    schedule 20.08.2013    source источник
comment
проверьте этот ответ stackoverflow.com/questions/16682223/   -  person robotoaster    schedule 21.08.2013
comment
Спасибо, а что именно вы хотите мне показать? Я уже знаю этот пост, но он посвящен тестовым настройкам. Требуются ли тестовые папки для распознавания моих папок res?   -  person muetzenflo    schedule 21.08.2013
comment
вам не нужно указывать их, так как они по умолчанию называются так, как показано на моем скриншоте. Все, что я делаю, это добавляю testPackageName и testInstrumentationRunner в конфигурацию по умолчанию. Также я не использую IDE для запуска теста, а использую команду gradle.   -  person robotoaster    schedule 21.08.2013
comment
хорошо, хотя я не думаю, что это имеет какое-либо отношение к папке toolsTest, я сейчас их создал. Я также попытался перечислить все возможные задачи Gradle с помощью командной строки. Пожалуйста, смотрите мой отредактированный вопрос.   -  person muetzenflo    schedule 21.08.2013
comment
Я сталкивался с этим отсутствующим манифестом раньше, плагин gradle должен сам генерировать тестовый манифест. Мне трудно догадаться, почему, но вот мой репозиторий с рабочим проектом. тест должен завершиться ошибкой при утверждении, проверьте файл readme github.com/swavkulinski/android-studio-instrumentation- тест   -  person robotoaster    schedule 21.08.2013
comment
Привет, спасибо за реполинк. Я сравнил два проекта, но особой разницы не нашел. Только то, что у вас есть ваш основной gradle.build в исходных папках, а не в корне проекта. Я думаю, что в новейшей версии Android Studio есть ошибка. Я создал новый проект с версией 0.2.0, и все было настроено правильно... если я узнаю больше, я опубликую это здесь, но пока я могу использовать проект, созданный Android Studio 0.2.0. Спасибо за вашу помощь!   -  person muetzenflo    schedule 21.08.2013
comment
tools.android.com/tech-docs/new-build-system больше примеров внизу страницы в zip   -  person robotoaster    schedule 21.08.2013


Ответы (5)


Если у вас возникла эта проблема в текущей версии Android Studio или что-то в этом роде (например, я добавил изображения в свою папку для рисования, и они не были распознаны), ваша проблема может заключаться в том, с чем я столкнулся.

Если вы столкнулись с этой проблемой после дублирования проекта, над которым работали, то этот новый проект, скорее всего, был импортирован неправильно.

Я совершил ошибку, скопировав и вставив проект в IDE, переименовав его (отредактировав манифест), а затем попытавшись поработать над ним. Это не сработает, потому что новый проект по-прежнему обращается к исходной папке res.

При дублировании проекта, чтобы не испортить оригинал, следует:

  1. Перейдите в папку проекта Android Studio (щелкните правой кнопкой мыши текущий проект в среде IDE и выберите «Показать в проводнике».
  2. Скопируйте + вставьте этот проект в тот же каталог; переименование папки в соответствии с именем новой версии.
  3. В IDE выберите «Файл» > «Импорт проекта» > ... и найдите каталог вашего нового проекта.
  4. (Продолжайте соответствующим образом переименовывать проект в IDE. Измените имя пакета в AndroidManifest.xml)

Таким образом, IDE создает для него новый проект и получает доступ к правильной папке res (а не к исходной).

Хотя это может не быть решением для многих из вас, читающих этот вопрос; Я сталкивался с этим вопросом много раз, прежде чем нашел правильный способ дублировать проект.

Я надеюсь, что это может сэкономить кому-то время.

person OscuroAA    schedule 13.10.2014
comment
Это было как раз то решение, которое я искал. Спасибо, что сэкономили мне много времени. - person Maverick1st; 24.11.2014

Попробуйте добавить следующее в defaultConfig (в android {...})

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
}
person powder366    schedule 21.11.2013
comment
Спасибо, я тоже пробовал тогда. Но это была ошибка в выпуске Android Studio. С версии 0.5.6 работает нормально. - person muetzenflo; 22.11.2013
comment
@muetzenflo Если это ответ, вы должны написать его и отметить как ответ. - person ThomasW; 21.01.2014
comment
Не могли бы вы сказать мне, где я могу узнать обо всех свойствах, содержащихся в sourceSets? На странице Gradle я могу только найти java и resources. - person CopperCash; 04.07.2014

Хотя это очень старый пост, @ThomasW предложил сделать его официальным ответом: это была ошибка в версии 0.2.5. С тех пор, как я использую более новые версии Android Studio, у меня больше не было этой проблемы.

person muetzenflo    schedule 21.01.2014
comment
Хм, это странно. Я использую AS ежедневно и никогда не сталкивался с этой проблемой, начиная с версии 0.2.5. Но с новой версией 0.8.1 произошли многочисленные изменения во внутреннем управлении/импорте проектов. Если вы найдете лучшее решение, просто опубликуйте его здесь, и я отмечу его как правильное. Возможно, попробуйте очистить кеш и перезапустить AS (доступно в меню «Файл»). - person muetzenflo; 07.07.2014
comment
Я нашел, что не так в моем случае - у меня было два представления в RelativeLayout, первое использовало свойство отношения со вторым (по id) - у AndroidStudio нет проблем с разрешением такого представления для предварительного просмотра (все было хорошо), но gradle не не построить его. Мне пришлось изменить порядок этих представлений, и теперь он работает нормально. - person Krystian; 08.07.2014

Я некоторое время боролся с этим, и у меня всегда были проблемы с созданием нового проекта maven в AndroidStudio. В итоге сработало следующее (протестировано с Android Studio 1.0.1)

  • Щелкните правой кнопкой мыши файл POM -> Maven -> Удалить проект (здесь, если он жалуется, обязательно удалите зависимости от проекта)
  • Щелкните правой кнопкой мыши еще раз на pom -> Maven -> Импорт проекта
person jsk    schedule 17.12.2014

Что сработало для меня, так это создать копию каждого файла, который он не собирал в моей папке Drawable, и удалить старый. По какой-то причине он не собирал никаких ресурсов в моем файле для рисования. Перепробовал все остальное, что смог найти в гугле.

person Bravo    schedule 27.08.2020