- Resource Raw Folder in Android Studio
- How the Resource raw folder is different from the Assets folder?
- But when to use which folder?
- How to Create Resource Raw Folder in Android Studio?
- Android: Как добавить R.raw в проект?
- Методы лечения различных ошибок в Android Studio при разработке проекта
- Android: Drawable не отображается
- 5 ответов
Resource Raw Folder in Android Studio
The raw (res/raw) folder is one of the most important folders and it plays a very important role during the development of android projects in android studio. The raw folder in Android is used to keep mp3, mp4, sfb files, etc. The raw folder is created inside the res folder: main/res/raw. So we will simply create it inside the res folder. But before creating a raw folder let’s have a look at the asset folder in android which acts the same role as the raw folder in android studio. So let discuss how the resource raw folder is different from the assets folder?
How the Resource raw folder is different from the Assets folder?
In Android one can store the raw asset file like JSON, Text, mp3, HTML, pdf, etc in two possible locations:
- assets
- res/raw folder
Both of them appear to be the same, as they can read the file and generate InputStream as below.
But when to use which folder?
Below is some guidance that might be helpful to choose
1. Flexible File Name: (assets is better)
- assets: The developer can name the file name in any way, like having capital letters (fileName) or having space (filename).
- res/raw: In this case, the name of the file is restricted. File-based resource names must contain only lowercase a-z, 0-9, or underscore.
2. Store in subdirectory: (possible in assets)
- assets: If the developer wants to categories the files into subfolders, then he/she can do it in assets like below.
3. Compile-time checking: (possible in res/raw)
- assets: Here, the way to read it into InputStream is given below. If the filename doesn’t exist, then we need to catch it.
- res/raw folder: Here, the way to read it into InputStream is:
So putting a file in the res/raw folder will provide ensure the correct file-name during compile time check.
4. List filenames at runtime: (possible in assets)
- assets: If the developer wants to list all the files in the assets folder, he/she has used the list() function and provide the folder name or ” “ on the root folder as given below.
- res/raw: This is not possible in this folder. The developer has to know the filename during development, and not runtime.
So, in assets, one can read the filename during runtime, list them, and use them dynamically. In res/raw, one needs to code them ready, perhaps in the string resources file.
5. Filename accessible from XML: (possible in res/raw)
So if you need to access your file in any XML, put it in the res/raw folder. Let’s make a table to remember the whole scenario easily.
Res/Raw Folder |
---|
Flexible File Name NO |
Store in subdirectory NO |
Compile-time checking YES |
List filenames at runtime NO |
Filename accessible from XML How to Create Resource Raw Folder in Android Studio?Now let’s discuss how to create the Resource Raw folder in the android studio. Below is the step-by-step process to create the Resource Raw folder in Android studio. Step 1: To create the Resource Raw folder in Android studio open your project in Android mode first as shown in the below image. Step 2: Open your android studio go to the app > res > right-click > New > Android Resource Directory as shown in the below image. Step 3: Then a pop-up screen will arise like below. Here in Resource type choose raw. Step 4: After choosing the raw from the dropdown menu click on the OK button and keep all the things as it is. Step 5: Now you can see the raw folder has been created and you can find the folded in the app > res > raw as shown in the below image. Источник Android: Как добавить R.raw в проект?Как я могу добавить класс R.raw в мой проект Android? Теперь у меня нет / res / raw folder вообще (и класс тоже). И я не могу найти какие-либо инструменты в eclipse, чтобы это сделать. Итак, как добавить R.raw? Добавление исходной папки в папку ресурса (/ res /) должно сделать трюк. Появится новое окно, измените тип ресурса на raw и нажмите OK, а предыдущая песня в сырую папку запомните, не перетащите файл песни в сырую папку, а песенное заклинание должно быть в нижнем регистре! Этот метод предназначен для Android Studio. Также проверьте, что моя ссылка Если у вас есть папка res/raw , обязательно добавьте файл с допустимым именем файла, иначе вся папка не будет отображаться в классе R. Если есть ошибка с именем файла, она будет отображаться красным цветом в консоли. Просто добавьте папку «raw» в папку res. (Со ссылкой на Android Studio) Создайте новый каталог в папке res. Обязательно создайте новый «Каталог ресурсов Android», а не новый «Справочник». Затем убедитесь, что в нем есть хотя бы один действительный файл. Он должен появиться сейчас. Чтобы он распознал необработанный файл, убедитесь, что вы его создали, и добавьте его как файл необработанных ресурсов. Затем перейдите в файл build.gradle и добавьте этот блок кода. Использование идеи IntelliJ: 1) Invalidate Caches и 2) щелкните правой кнопкой мыши по ресурсам, папке «Новые ресурсы», введите = raw 3) build Обратите внимание на шаге 2: я был обеспокоен тем, что просто добавить исходный каталог будет недостаточно … Источник Методы лечения различных ошибок в Android Studio при разработке проектаСегодня хотел бы поделиться своим анализом и способами лечением разных ошибок при разработке своего продукта в Android Studio. Лично я, не раз сталкивался с различными проблемами и ошибками при компиляции и/или тестировании мобильного приложения. Данный процесс, всегда однообразный и в 99% случаев и всегда нужно тратить n-колличество времени на его устранение. Даже, когда ты уже сталкивался с данной проблемой, ты все равно идешь в поисковик и вспоминаешь, как же решить ту или иную ситуацию. Я для себя завел файлик, в котором отметил самые частые ошибки — потратив на это несколько часов и перечислил самые популярные ошибки (в дальнейшем планирую просто их запомнить), чтоб сократить свое время в дальнейшем. Итак, начну по порядку с самой распространенной проблемы и дальше буду перечислять их по мере появления: 1) Если подчеркивает красным код, где используются ресурсы: R. — попробовать (но вероятно не поможет): Build -> Clean Project. В принципе на Build -> Clean Project можно не терять времени, а лучше всего — слева переключиться на Project, открыть каталог .idea, затем каталог libraries и из него удалить все содержимое. Затем нажать кнопку Sync Project. А затем (если все еще красное, но скорее всего уже будет все ок ) Build -> Clean Project. 2) После внезапного выключения компьютера, после перезапуска может быть во всех проектах весь код красным. Перед этим может быть ошибка: Unable to create Debug Bridge: Unable to start adb server: Unable to obtain result of ‘adb version’. Есть три решения — первое помогло, второе нет (но может быть для другого случая), а третье — не пробовал: а) File — Invalidate Caches/Restart — Invalidate and Restart б) Закрыть студию. В корне папки проекта удалить файл(ы) .iml и папку .idea. Вновь запустить студию и импортировать проект. в) Нажать Ctrl-Alt-O и запустить оптимизацию импорта. Кстати, adb сервер можно проверить на версию (и работоспособность) и затем перезапустить: 3) Если Android Studio выдает приблизительно такую ошибку: Error:Execution failed for task ‘:app:dexDebug’. Надо слева переключиться на опцию Project, найти и удалить папку build которая лежит в папке app, т.е. по пути app/build. Затем перестроить весь проект заново: Build -> Rebuild Project. Такое же решение если ошибка типа: «не могу удалить (создать) папку или файл» и указан путь, который в ведет в app/build. Тоже удаляем папку build и ребилдим проект. 4) В сообщении об ошибке упоминается heap — виртуальная память. А ошибка обычно вызвана ее нехваткой, т.е. невозможностью получить запрашиваемый объем. Поэтому этот запрашиваемый объем надо уменьшить, т.е. переписать дефолтное значение (обычно 2048 MB которое можно изменить в настройках), на меньшее 1024 MB. В файле проекта gradle.properties пишем: 5) Android Studio пришет примерно такую ошибку: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to «83648b99316049d63656d7276cb19cc7e95d70a5» Возможные причины (кроме необходимости регулярного обновления SDK): а) Загруженный проект был скомпилирован с помощью уже несовместимого старого gradle плагина. В этом случае надо найти и подключить в своем build.gradle проекта этот более старый плагин. т.е. попробовать более старые версии, например: 1.1.3 (часто именно 1.1.x и подходит). Найти все версии можно здесь. б) Если в build.gradle проекта используется beta-версия плагина — это означает, что срок ее истек. Посмотреть последние релизы (продакшн и бета) можно также здесь: 6) Иногда при подключении сторонних библиотек могут дублироваться некоторые файлы (обычно связанные с лицензированием). В сообщении будет что-то содержащее слова: duplicate files. Решение — надо посмотреть в сообщении об ошибке или в документации подключенной сторонней библиотеки — какие именно файлы стали избыточными, и перечислить их в build.gradle модуля для исключения (exclude) из билда. Это делается в директиве packagingOptions (которая, в свою очередь, находится в директиве android). Источник Android: Drawable не отображаетсяу меня есть довольно простой xml-файл, в котором есть кнопка изображения. Изображение отлично отображается в графическом макете xml designer, отлично отображается при запуске сборки разработки, но как только я создаю подписанный файл apk и запускаю его, изображение больше не отображается. Это просто пустая кнопка. Я не могу придумать причину, какие-нибудь идеи? XML-файл выглядит так: изображение @drawable/chapter_select — довольно маленький (41*41) png-файл, который находится в res/drawable папка. 5 ответовпохоже, что это ошибка с android, где иногда первое изображение в папке drawable не отображается. Добавлено фиктивное изображение под названием aaaa.png в папку drawable и проблема была решена. Нашел ответ здесь: ImageButton не отображает конкретный drawable имел ту же проблему и решил ее, удалив все специальные символы. В моем случае это были тире ‘ — ‘ в имени файла: попробуйте поместить изображение в папку drawable-hdpi и drawable-mdpi в зависимости от того , на каком устройстве вы запускаете приложение, изображение ищется в этих папках. но ввод в drawable означает, что изображение должно быть доступно везде, но что-то (зависит от ваших настроек манифеста) это не может быть правдой, я имею в виду, что вы можете включить режим совместимости. также вы можете попробовать динамически во время выполнения, чтобы установить изображение в вид моя ситуация была странная.Все было правильно до интеграции FireBase Crash report в мое приложение. Я только что добавил compile ‘com.google.firebase:firebase-crash:11.0.1’ & DrawableLeft исчез .Когда я прошел через xml, заметил предупреждение (в строке ниже). так android:drawableStart & проблема ушла. все еще мне интересно об отношении сообщения о крушении FireBase к тому же.
аналогично, в атрибутах гравитации XML и layout_gravity используйте start а не слева. Для атрибутов XML, таких как paddingLeft и layout_marginLeft, используйте paddingStart и layout_marginStart. Примечание: Если ваша minSdkVersion меньше 17, вы должны добавить как старые левые / правые атрибуты, а также новые атрибуты start/right. На более старых платформах, где RTL не поддерживается и начало / право атрибуты неизвестны и поэтому игнорируются, вам нужен более старый левый / правый атрибуты. существует отдельная проверка корпии, которая ловит этот тип ошибки. (Примечание: Для гравитации#LEFT и гравитации#START вы можете использовать эти константы даже при таргетинге на более старые платформы, потому что стартовая битовая маска надмножество левой битовой маски. Поэтому вы можете использовать gravity= » start» а не гравитация=»влево» | «пуск».) проверьте размер изображения. Если вы используете неоправданно большой актив при фактическом развертывании, он может просто не отображаться, несмотря на правильность в конструкторе. Источник |