I am confused about the assets
folder. It doesn’t come auto-created in Android Studio, and almost all the forums in which this is discussed talk about Eclipse.
How can the Assets directory be configured in Android Studio?
asked Aug 18, 2013 at 18:54
Harshad KaleHarshad Kale
17.3k6 gold badges29 silver badges43 bronze badges
0
Since Android Studio uses the new Gradle-based build system, you should be putting assets/
inside of the source sets (e.g., src/main/assets/
).
In a typical Android Studio project, you will have an app/
module, with a main/
sourceset (app/src/main/
off of the project root), and so your primary assets would go in app/src/main/assets/
. However:
-
If you need assets specific to a build type, such as
debug
versusrelease
, you can create sourcesets for those roles (e.g,.app/src/release/assets/
) -
Your product flavors can also have sourcesets with assets (e.g.,
app/src/googleplay/assets/
) -
Your instrumentation tests can have an
androidTest
sourceset with custom assets (e.g.,app/src/androidTest/assets/
), though be sure to ask theInstrumentationRegistry
forgetContext()
, notgetTargetContext()
, to access those assets
Also, a quick reminder: assets are read-only at runtime. Use internal storage, external storage, or the Storage Access Framework for read/write content. (note: the first two links are to my blog)
Ryan M♦
17.8k31 gold badges64 silver badges73 bronze badges
answered Aug 18, 2013 at 18:56
CommonsWareCommonsWare
980k189 gold badges2378 silver badges2463 bronze badges
12
Let Android Studio do it for you.
- In Android Studio (1.0 & above), right-click on the folder and navigate to the
Assets Folder
.
- On the next screen just click
Finish
.
And voila! It will create the assets
folder in the main
target source set.
answered Dec 28, 2014 at 4:50
6
Looking inside the .iml file of your project you will see the following line:
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
This means the “assets” folder is already declared for Gradle. You will need to create it under src/main/
(I’m using Android Studio 0.4.2).
answered Jan 21, 2014 at 10:03
4
Select the app
folder and then:
File
> New
> folder
> assets Folder
,
the default location is inside /main
folder
answered Sep 4, 2015 at 21:46
JorgesysJorgesys
123k23 gold badges328 silver badges264 bronze badges
1
First of all the “Assets” folder will not be created automatically with the project. We have to create it.
The location of Assets folder is: App > src > Assets
Please have a look of the simple image below.
Note: For creating assets folder just click on Project => Right click => Select New => Folder => Assets. It will create Assets folder.
Arun J
6874 gold badges14 silver badges27 bronze badges
answered Jun 18, 2018 at 10:48
2
It’s simple, follow these steps
File > New > Folder > Assets Folder
Note : App must be selected before creating folder.
Arun J
6874 gold badges14 silver badges27 bronze badges
answered Jun 23, 2015 at 6:39
Pankaj kumarPankaj kumar
1,34714 silver badges13 bronze badges
0
In android studio you can specify where the source, res, assets folders are located.
for each module/app in the build.gradle file you can add something like:
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
sourceSets {
main {
java.srcDirs = ['src']
assets.srcDirs = ['assets']
res.srcDirs = ['res']
manifest.srcFile 'AndroidManifest.xml'
}
}
}
answered Dec 11, 2014 at 14:57
2
Simply, double shift then type Assets Folder
choose it to be created in the correct place
answered Jan 30, 2019 at 14:07
2
Click over main → new -> directory → and type as name “assets”
or… main -> new -> folder -> assets folder (see image)
answered Jan 17, 2017 at 12:20
Pablo CegarraPablo Cegarra
20.4k11 gold badges91 silver badges110 bronze badges
In Android Studio 4.1.1
Right Click on your module (app for example) -> New -> Folder -> Assets Folder
answered Jan 21, 2021 at 18:13
AmrDeveloperAmrDeveloper
3,5761 gold badge19 silver badges28 bronze badges
File > New > folder > assets Folder
answered Dec 4, 2017 at 9:52
Project -> app -> src -> main -> RMB(right mouse button) -> New -> Directory:
Dharman♦
30.3k22 gold badges84 silver badges132 bronze badges
answered Jan 18, 2022 at 8:08
Two ways:
-
Select app/main folder, Right click and select New => Folder => Asset Folder.
It will create ‘assets’ directory in main. -
Select main folder, Right click and select New => Directory
Enter name as ‘assets’ = > Ok.
Arun J
6874 gold badges14 silver badges27 bronze badges
answered May 8, 2018 at 10:25
TejpalBhTejpalBh
4274 silver badges13 bronze badges
If you tried all your bullets in this thread in vain try cleaning your project . In my case it only worked after Projet
-> clean
answered Jun 22, 2015 at 23:03
zizoujabzizoujab
7,5858 gold badges40 silver badges72 bronze badges
0
right click on app folder->new->folder->Assets folder->set Target Source set->click on finish button
answered Feb 15, 2017 at 5:04
0
Put the assets folder in the main/src/assets
path.
answered May 20, 2017 at 21:07
Src/main/Assets
It might not show on your side bar if the app is selected. Click the drop-down at the top that says android and select packages. you will see it then.
answered Jul 26, 2017 at 22:04
S.DoyleS.Doyle
2153 silver badges17 bronze badges
need configure parameter for gradle
i hope is will work
// file: build.gradle
sourceSets {
main {
assets.srcDirs = ['src/main/res/icon/', 'src/main/assets/']
}
}
answered Feb 18, 2016 at 19:55
madjardimadjardi
5,5632 gold badges37 silver badges37 bronze badges
When upgrading to the release version of Android Studio, you may be automatically switched to the new Android project View (see here for more info). If you swap back to either the Project or Packages view, you should see the standard folder hierarchy of a Gradle-based project. Then refer to CommonsWare’s answer for the appropriate location.
answered Dec 17, 2014 at 16:33
stkentstkent
19.7k14 gold badges84 silver badges109 bronze badges
In Android Studio, click on the app
folder, then the src
folder, and then the main
folder. Inside the main folder you can add the assets folder.
answered May 20, 2016 at 7:28
2
Step 1 : Go to Files.
Step 2 : Go to Folders.
Step 3 : Create Assets Folder.
In Assets folder just put fonts and use it if needed.
answered Mar 20, 2018 at 13:57
Deep AdhiaDeep Adhia
3724 silver badges11 bronze badges
follow these steps
1)file->New->Folder
there are multiple options like
aidl folder
assets folder
jni folder
2) choose options assets folder
3) then there is option to change path of assets folder if you
want to change then check otherwise left that checkbox of cahnge folder location
4) click on finish
answered Mar 14, 2019 at 6:33
Either create a directory under /app/src/main or use studio File-> New -> Folder – > Assets Folder.
answered Feb 15, 2018 at 4:52
In Android Studio right-click Folder in app->src->main then create new DIRECTORY name that assets
.
answered Sep 19, 2020 at 15:13
It seems that nobody mentioned this:
You can define it in Project Structure > Project Settings:
answered Dec 4, 2021 at 17:59
I have a whole folder structure that I want to copy from my assets folder. However, the mContext.getAssets().open() seems to only want a filename so that it can return an InputStream, which is only suitable for copying a single file. What I need is a File made from the folder in my assets folder so that I can recurse through all the files and folders and copy them all.
Does anybody know how to get the path to the assets folder so that I can create a File object?
Edit: After some study it appears that you can’t access files in the assets/ and raw/ folders with absolute paths to be able to create a File object. It probably has to do with the encryption of the app package. I hope someone can prove me wrong though!
Final edit: I ended up creating an array of strings to hold the extra asset files:
private static final String[] DEFAULT_ALBUM_FILES =
{INTRO_TO_FLASHUM_DIR+"03 Never Can Say Goodbye.m4a",
INTRO_TO_FLASHUM_DIR+"11 Bossa Baroque.m4a",
INTRO_TO_FLASHUM_DIR+"intro fling.3gp"};
I then iterated through this copying each file individually using the mContext.getAssets().open() to get the InputStream. I don’t think it is currently possible to iterate through a folder in the assets using normal File operations.
- Чтение файлов
- Используем собственные шрифты
- Загрузка локальных файлов из активов в WebView
- Получаем список файлов в папке assets
В Android имеется ещё один каталог, в котором могут храниться файлы, предназначенные для включения в пакет – assets. Этот каталог находится на том же уровне, что и res. Для файлов, располагающихся в assets, в R.java не генерируются идентификаторы ресурсов. Для их считывания необходимо указать путь к файлу. Путь к файлу является относительным и начинается с /assets. Этот каталог, в отличие от подкаталога res, позволяет задавать произвольную глубину подкаталогов и произвольные имена файлов и подкаталогов.
По умолчанию проект в студии не содержит данную папку. Чтобы её создать, выберите меню File | New | Folder | Assets Folder.
Чтение файлов
Для доступа к файлам используется класс AssetManager. Пример для чтения текстового файла.
Сначала на Kotlin.
button.setOnClickListener {
val sampleText: String =
applicationContext.assets
.open("sample.txt")
.bufferedReader().use {
it.readText()
}
println(sampleText)
}
На Java.
String getStringFromAssetFile(Activity activity)
{
AssetManager am = activity.getAssets();
InputStream is = am.open("test.txt");
String s = convertStreamToString(is);
is.close();
return s;
}
Другой способ:
String text = filename;
byte[] buffer = null;
InputStream is;
try {
is = getAssets().open(text);
int size = is.available();
buffer = new byte[size];
is.read(buffer);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
String str_data = new String(buffer);
return str_data;
Для доступа к графическому файлу из актива можно использовать следующий код:
public void loadImageFromAsset() {
try {
// получаем входной поток
InputStream ims = getAssets().open("cat.jpg");
// загружаем как Drawable
Drawable d = Drawable.createFromStream(ims, null);
// выводим картинку в ImageView
mImage.setImageDrawable(d);
}
catch(IOException ex) {
return;
}
}
Вы также можете загрузить изображение в Bitmap, используя BitmapFactory.decodeStream(), вместо Drawable.
Функция-расширение для Kotlin, которая вернёт Bitmap.
fun Context.assetsBitmap(path: String): Bitmap? {
val inputStream: InputStream
var bitmap: Bitmap? = null
try {
inputStream = assets.open(path)
bitmap = BitmapFactory.decodeStream(inputStream)
} catch (e: IOException) {
// Handle exception here
}
return bitmap
}
Используем собственные шрифты
Напишем практический пример создания приложения, в котором будут использоваться собственные шрифты, не входящие в стандартную библиотеку шрифтов Android. Для этого мы упакуем нужные шрифты вместе с приложением. Поместим в каталог assets/fonts файлы шрифтов (можно скачать бесплатные шрифты с сайтов 1001 Free Fonts или Urban Fonts).
В файл разметки добавим пару текстовых полей с заготовленным текстом для вывода этого текста с нашим шрифтом.
В классе активности загрузим объект EditText из ресурсов, а затем создадим объект Typeface, используя вызов статического метода Typeface.createFromAsset(). Метод createFromAsset() принимает два параметра:
- объект AssetManager, который можно получить вызовом метода getAssets()
- путь к файлу актива.
Например, загрузить шрифт для текстового поля EditText можно следующим способом:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText firstEditText = (EditText)findViewById(R.id.editText1);
firstEditText.setTypeface(Typeface.createFromAsset(
getAssets(), "fonts/DigitalDream.ttf"));
final EditText secondEditText = (TextView)findViewById(R.id.editText2);
secondEditText.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/Catwalk.ttf"));
}
Запустив проект, мы увидим в текстовых полях надписи Happy New Year! и Meow!, выводимые нашими собственными шрифтами.
Пример для фрагмента.
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// Какой-то шрифт
courgette = Typeface.createFromAsset(getActivity().getAssets(), "Courgette-Regular.ttf");
}
Загрузка локальных файлов из активов в WebView
Если нужно загрузить локальные страницы и изображения из активов в WebView, то можно использовать префикс file://android_asset. Подробнее смотрите в статье про WebView.
myBrowser = (WebView)findViewById(R.id.mybrowser);
myBrowser.loadUrl("file:///android_asset/mypage.html");
Получаем список файлов в папке assets
Можно получить список файлов, которые находятся в папке assets. Для быстрой проверки кода я вручную скопировал в папку два файла:
AssetManager myAssetManager = getApplicationContext().getAssets();
try {
String[] Files = myAssetManager.list(""); // массив имён файлов
Toast.makeText(getApplicationContext(), Files[0] + ", " + Files[1],
Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
}
Кроме ваших файлов, также возвращаются странные папки /images, /sounds, /webkit. Учитывайте это в своих проектах. Так как в папке можно создавать собственные подпапки, то можно воспользоваться вспомогательным методом:
void displayFiles(AssetManager mgr, String path) {
try {
String list[] = mgr.list(path);
if (list != null)
for (int i = 0; i < list.length; ++i) {
Log.v("Assets:", path + "/" + list[i]);
displayFiles(mgr, path + "/" + list[i]);
}
} catch (IOException e) {
Log.v("List error:", "can't list" + path);
}
}
// вызываем метод
public void onClick(View view) {
final AssetManager mgr = getAssets();
displayFiles(mgr, ""); // содержимое папки /assets, включая странные папки
displayFiles(mgr, "cats"); // содержимое подпапки /assets/cats
}
Ограничение на размер файлов
По сети гуляет информация, что существует ограничение в 1 Мб на размер файлов в папке assets. При превышении размера у вас может появиться ошибка:
Data exceeds UNCOMPRESS_DATA_MAX
Я не сталкивался, поэтому рецепт решения проблемы не предлагаю.
Дополнительное чтение
Копируем файл из папки assets
Реклама
Я запутался в папке assets
. Он не создается автоматически в Android Studio, и почти все форумы, на которых это обсуждается, говорят об Eclipse.
Как настроить каталог активов в Android Studio?
Ответ 1
Так как Android Studio использует новую систему сборки Gradle, вы должны поставить assets/
внутри исходный набор (например, src/main/assets/
).
В типичном проекте Android Studio у вас будет app/
модуль с main/
sourceset (app/src/main/
от корня проекта), и поэтому ваши основные активы перейдут в app/src/main/assets/
. Однако:
-
Если вам нужны активы, специфичные для сборки, такие как
debug
versusrelease
, вы можете создать набор источников для этих ролей (например,app/src/release/assets/
) -
В ваших продуктах также могут быть источники с активами (например,
app/src/googleplay/assets/
) -
В ваших контрольно-измерительных тестах может быть набор
androidTest
с пользовательскими активами (например,app/src/androidTest/assets/
), хотя не забудьте запроситьInstrumentationRegistry
дляgetContext()
, а неgetTargetContext()
для доступа к этим активам
Кроме того, быстрое напоминание: активы доступны только для чтения во время выполнения. Используйте внутреннее хранилище, внешнее хранилище или систему доступа к хранилищу для чтения/записи содержимого.
Ответ 2
Пусть Android Studio сделает это за вас.
- В Android Studio (1.0 и выше) щелкните правой кнопкой мыши по папке и перейдите к
Assets Folder
.
- На следующем экране просто нажмите
Finish
.
И вуаля! Он создаст папку assets
в целевом исходном наборе main
.
Ответ 3
Внутри .iml файла вашего проекта вы увидите следующую строку:
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
Это означает, что папка “активы” уже объявлена для Gradle. Вам нужно будет создать его под src/main/
(я использую Android Studio 0.4.2).
Ответ 4
Выберите папку app
, а затем:
File
> New
> folder
> assets Folder
,
местоположение по умолчанию находится внутри папки /main
Ответ 5
Это просто, следуйте этим шагам
Файл> Создать> Папка> Папка с активами
Примечание: приложение необходимо выбрать перед созданием папки.
Ответ 6
В студии Android вы можете указать, где находятся папки источника, res, assets.
для каждого модуля/приложения в файле build.gradle вы можете добавить что-то вроде:
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
sourceSets {
main {
java.srcDirs = ['src']
assets.srcDirs = ['assets']
res.srcDirs = ['res']
manifest.srcFile 'AndroidManifest.xml'
}
}
}
Ответ 7
Прежде всего, папка “Активы” не будет создаваться автоматически с проектом. Мы должны создать это.
Папка с ресурсами: App> src> Assets
Пожалуйста, взгляните на простое изображение ниже.
Примечание: Для создания папки ресурсов просто нажмите Project => Щелкните правой кнопкой мыши => Выберите New => Folder => Assets. Это создаст папку активов.
Ответ 8
Просто дважды сдвиньте, затем введите папку активов
выберите его для создания в правильном месте
Ответ 9
Нажмите на основной → новый → каталог → и введите в качестве имени “активы”
или… главная → новая → папка → папка ресурсов (см. изображение)
Ответ 10
Файл> Создать> папка> папка активов
Ответ 11
Если вы пробовали все свои пули в этом потоке, попробуйте очистить свой проект. В моем случае он работал только после Projet
→ clean
Ответ 12
щелкните правой кнопкой мыши на папке приложения- > новой- > папке- > папке с активами- > установите целевой источник-источник- > нажмите кнопку завершения
Ответ 13
При обновлении до продакшен версии Android Studio, вы можете быть автоматически переведены на новый Android проекта View (см здесь для получения дополнительной информации). Если вы вернетесь обратно к представлению Project или Packages, вы должны увидеть стандартную иерархию папок проекта на основе Gradle. Затем обратитесь к ответу CommonsWare для соответствующего местоположения.
Ответ 14
Поместите папку активы в путь main/src/assets
.
Ответ 15
Два способа:
-
Выберите приложение/основную папку, щелкните правой кнопкой мыши и выберите New => Folder => Asset Folder.
Это создаст каталог ‘assets’ в main. -
Выберите основную папку, щелкните правой кнопкой мыши и выберите New => Directory
Введите имя как ‘assets’ => Ok.
Ответ 16
нужен параметр конфигурации для gradle
я надеюсь, будет работать
// file: build.gradle
sourceSets {
main {
assets.srcDirs = ['src/main/res/icon/', 'src/main/assets/']
}
}
Ответ 17
Src/main/Assets
Он может не отображаться на боковой панели, если приложение выбрано. Нажмите раскрывающийся список вверху, в котором говорится об андроиде, и выберите пакеты. вы увидите это.
Ответ 18
Шаг 1: Перейти к файлам. Шаг 2: Перейдите в папки. Шаг 3: Создать папку активов.
В папке Assets просто поместите шрифты и используйте их при необходимости.
Ответ 19
В Android Studio щелкните папку app
, затем папку src
, а затем папку main
. Внутри основной папки вы можете добавить папку с ресурсами.
Ответ 20
Либо создайте каталог в /app/src/main, либо используйте studio File-> New → Folder → Assets Folder.
Ответ 21
follow these steps
1)file->New->Folder
there are multiple options like
aidl folder
assets folder
jni folder
2) choose options assets folder
3) then there is option to change path of assets folder if you
want to change then check otherwise left that checkbox of cahnge folder location
4) click on finish
Я запутался в . Он не приходит автоматически созданный в Android Studio, и почти все форумы, в которых это обсуждается, говорят о Eclipse.
как можно настроить каталог активов в Android Studio?
693
19
19 ответов:
так как Android Studio использует новая система сборки на основе Gradle, вы должны быть положить
assets/
внутри исходных наборов (например,src/main/assets/
).в типичном проекте Android Studio у вас будет
app/
модуль, сmain/
sourceset (app/src/main/
выкл из корня проекта), и поэтому ваши основные активы будут входитьapp/src/main/assets/
. Однако:
Если вам нужны активы, специфичные для сборки, такие как
debug
versusrelease
, вы можете создать исходные наборы для этих ролей (например,.app/src/release/assets/
)ваши вкусы продукта также могут иметь исходные наборы с активами (например,
app/src/googleplay/assets/
)ваши тесты инструментирования могут иметь
androidTest
sourceset с пользовательскими активами (например,app/src/androidTest/assets/
), но будьте уверены, чтобы попроситьInstrumentationRegistry
наgetContext()
, а неgetTargetContext()
, чтобы получить доступ к этим активамкроме того, быстрое напоминание: активы предназначены только для чтения во время выполнения. Используйте внутренний накопитель,внешний накопитель или структура доступа к хранилищу для чтения/записи содержимого.
пусть Android Studio сделает это за вас.
- В Android Studio (1.0 и выше), щелкните правой кнопкой мыши на папка и перейдите к
Assets Folder
.
- на следующем экране просто нажмите кнопку
Finish
.и вуаля! Это создаст
assets
папка вmain
целевого источника.
заглянув внутрь .iml файл вашего проекта вы увидите в следующей строке:
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
это означает, что папка “активы” уже объявлена для Gradle. Вам нужно будет создать его под
src/main/
(Я использую Android Studio 0.4.2).
выберите и затем:
File
>New
>folder
>assets Folder
,по умолчанию находится внутри
/main
папку
просто следовать этому
File > New > folder > assets Folder
Примечание: приложение должно быть выбрано перед созданием папки.
в android studio вы можете указать, где находятся папки source, res, assets.
для каждого модуля / приложения в сборке.gradle файл вы можете добавить что-то вроде:android { compileSdkVersion 21 buildToolsVersion "21.1.1" sourceSets { main { java.srcDirs = ['src'] assets.srcDirs = ['assets'] res.srcDirs = ['res'] manifest.srcFile 'AndroidManifest.xml' } } }
Если вы пробовали все ваши пули в этой теме напрасно попробуйте очистить свой проект . В моем случае он работал только после
Projet
->clean
щелкните правой кнопкой мыши на папке приложения- > new – > folder – >Assets folder – >set Target Source set – >нажмите кнопку Готово
File > New > folder > assets Folder
Привет это очень просто, прежде всего, папка assets не будет автоматически создаваться с проектом. нам нужно его создать.
расположение папки активов: – приложение – > src – >активы
пожалуйста, посмотрите на два простых изображения: Введите описание изображения здесь
Примечание: Для краетинга папки активов просто нажмите на проект щелкните правой кнопкой мыши выберите Создать затем папку, а затем активы, он будет создавать папку активов.
при обновлении до версии Android Studio вы можете автоматически переключиться на новый вид проекта Android (см. здесь для получения дополнительной информации). Если вы вернетесь к представлению проект или пакеты, вы увидите стандартную иерархию папок проекта на основе Gradle. Затем обратитесь к CommonsWare ответ для соответствующего местоположения.
Src/main/Assets
он может не отображаться на боковой панели, если приложение выбрано. Нажмите на выпадающее меню в верхней части, которая говорит android и выберите пакеты. тогда ты увидишь это.
поставить активы на
main/src/assets
путь.
нужно настроить параметр для gradle
я надеюсь, что это будет работать// file: build.gradle sourceSets { main { assets.srcDirs = ['src/main/res/icon/', 'src/main/assets/'] } }
щелкните по главному → новый каталог → имя каталога “активы”
Шаг 1: Перейдите к файлам.
Шаг 2 : Перейдите к папкам.
Шаг 3: Создайте Папку Активов.в папке Assets просто поместите шрифты и используйте их при необходимости.
В Android Studio, нажмите на , потом
src
папка, а затем . Внутри главной папки вы можете добавить папку assets.
либо создайте каталог в /app / src / main, либо используйте studio File-> New -> Folder – > Assets Folder.
двумя способами
1. выберите приложение / главная папка, щелкните правой кнопкой мыши и выберите Создать = > Папка => папка активов
Он создаст каталог “активы” в main
- выберите главную папку, щелкните правой кнопкой мыши и выберите создать = > каталог
Введите имя как “активы” = > ok