Where to place the 'assets' folder in Android Studio?
Asked Answered
M

26

1595

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?

Mikkanen answered 18/8, 2013 at 18:54 Comment(0)
U
1827

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 versus release, 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 the InstrumentationRegistry for getContext(), not getTargetContext(), 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)

Unclean answered 18/8, 2013 at 18:56 Comment(12)
I am trying to include a custom font in the assets directory. Should I be good to go by just pasting the .ttf file as src/main/assets/font.ttf ? or do i need to assign the font explicitly by code to the control to see it?Mikkanen
@kalehv: "or do i need to assign the font explicitly by code to the control to see it?" -- oh, absolutely. You will need to call setTypeface() on all TextView widgets (and others that inherit from TextView) that you want to use this particular font.Unclean
Cool. That worked like a charm. I wish there was a way to include Assets font (custom) into Styles.xml rather than using it through code. (My wish might sound too dumb to handle, I am a beginner so excuse me if it is :-P)Mikkanen
Thank you! I've been searching for hours for this. I tried creating a sub directory for assets under /src/main/res/ and the directory was being removed from the apk build.Surprise
Jeez. The android documentation needs to be way more explicit about this kind of stuff. This was unnecessarily hard to find.Inviting
how to read a file once assets folder is created . InputStream stream = getApplicationContext().getResources().getAssets().open("countries.txt"); It gives me filenotfound exceptonInterclavicle
@Bora: Then you do not have countries.txt in the assets/ directory. Here is a sample project that, among other things, copies a file from assets into internal storage. If you have further concerns, please ask a separate Stack Overflow question, where you provide a minimal reproducible example.Unclean
This answer is no longer exactly accurate, as the way Android Studio renders the file structure has changed.Guava
@mavrosxristoforos: No, this answer is still accurate, as I am referring to the filesystem (in Android Studio, you get a filesystem view through the Project rendition of the explorer tree).Unclean
@Unclean Yes, I agree. However, running under a completely default Android Studio 2.2.2, you don't get the exact File Structure on the Project navigator. That's what I intended to point out.Guava
On newer versions of Android Studio, there is no more src folder, see below answer for Android Studio to create it for you automatically.Bought
@LarryJing: There is a src folder in any standard Android Studio project, including those created in Android Studio 3.1.2 and the current canary release of 3.2.Unclean
S
1635

Let Android Studio do it for you.

  1. In Android Studio (1.0 & above), right-click on the enter image description here folder and navigate to the Assets Folder.

enter image description here

  1. On the next screen just click Finish.

enter image description here

And voila! It will create the assets folder in the main target source set.

enter image description here

Stupor answered 28/12, 2014 at 4:50 Comment(6)
this solution is for Android Studio 1.0 and above. Other answers are obsolete.Jounce
Graphical illustration makes all the difference in the world!Valetudinarian
Problem: on newer versions of Android Studio (I'm using 2.1.2), empty asset folders are not displayed in the Project Files window, making it difficult to add files. :(Halvorson
@ScottBiggs Once you add the assets folder as shown above (on v2.1.2), it should be visible inside app > src > mainStupor
What would be the link to this folder in a java file?Rickierickman
@VeeK For e.g. if you need to access assets>fonts you would do something like: Typeface t = Typeface.createFromAsset(getAssets(),"font/myfont.ttf")); So a call to getAssets() will give you path to directories inside assets folder.Stupor
C
131

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).

Coom answered 21/1, 2014 at 10:3 Comment(4)
My .iml doesn't have this, what portion of the file do I add this to?Solvable
you probably have 2 .iml files, check both of them.Datum
check app.iml not <Project-Name>.imlCongressional
Allways in .im at root of you src.. not in the project directory.. Thats just for gradle stuff.Dandiprat
T
95

Select the app folder and then:

File > New > folder > assets Folder ,

enter image description here

the default location is inside /main folder

enter image description here

Thundersquall answered 4/9, 2015 at 21:46 Comment(1)
This is the TL;DR version of the accepted answer and is actually useful.Gramarye
G
67

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.

enter image description here

Note: For creating assets folder just click on Project => Right click => Select New => Folder => Assets. It will create Assets folder.

Gopherwood answered 18/6, 2018 at 10:48 Comment(2)
If another newbie was confused by all these answers like me, the folder structure can look different based on the selection in the top left corner. Mine was "Android" while all the people here are using "Project" or "Project Files".Appreciative
project structure is different based on what you select for Project structure, project, project files, packages, Android etc, but you follow the screens what I share and see the selection of project structure type.Gopherwood
D
43

It's simple, follow these steps

File > New > Folder > Assets Folder

Note : App must be selected before creating folder.

Delicatessen answered 23/6, 2015 at 6:39 Comment(0)
C
31

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'
        }
    }
}
Clarendon answered 11/12, 2014 at 14:57 Comment(2)
is this necessary if one follows the convention?Slipcase
This is super useful if your project isn't crated from Android Studio's template (e.g. cloned from AOSP source code)Pantaloons
U
30

Simply, double shift then type Assets Folder

choose it to be created in the correct place

Urien answered 30/1, 2019 at 14:7 Comment(2)
Simplest One! (Y)Spectrohelioscope
This a secret one. Wow. ThanksGuano
Z
22

Click over main → new -> directory → and type as name "assets"

or... main -> new -> folder -> assets folder (see image)

enter image description here

Zoometry answered 17/1, 2017 at 12:20 Comment(0)
C
21

In Android Studio 4.1.1

Right Click on your module (app for example) -> New -> Folder -> Assets Folder

enter image description here

Cloy answered 21/1, 2021 at 18:13 Comment(0)
N
18

Project -> app -> src -> main -> RMB(right mouse button) -> New -> Directory:

enter image description here

enter image description here

Newton answered 18/1, 2022 at 8:8 Comment(0)
P
16

File > New > folder > assets Folder

Assets Folder

Putt answered 4/12, 2017 at 9:52 Comment(0)
A
13

Two ways:

  1. Select app/main folder, Right click and select New => Folder => Asset Folder. It will create 'assets' directory in main.

  2. Select main folder, Right click and select New => Directory Enter name as 'assets' = > Ok.

enter image description here

Attenuant answered 8/5, 2018 at 10:25 Comment(0)
A
12

If you tried all your bullets in this thread in vain try cleaning your project . In my case it only worked after Projet -> clean

Adsorbent answered 22/6, 2015 at 23:3 Comment(0)
W
12

right click on app folder->new->folder->Assets folder->set Target Source set->click on finish button

Whitherward answered 15/2, 2017 at 5:4 Comment(0)
B
9

Put the assets folder in the main/src/assets path.

Barite answered 20/5, 2017 at 21:7 Comment(0)
D
8
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.

Dissonancy answered 26/7, 2017 at 22:4 Comment(0)
S
7

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.

Scherle answered 17/12, 2014 at 16:33 Comment(0)
D
7

need configure parameter for gradle
i hope is will work

// file: build.gradle  
sourceSets {
    main {
        assets.srcDirs = ['src/main/res/icon/', 'src/main/assets/']
    }
}
Dispatch answered 18/2, 2016 at 19:55 Comment(0)
M
6

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.

Martimartial answered 20/5, 2016 at 7:28 Comment(2)
This does not provide an answer to the question. Once you have sufficient reputation you will be able to comment on any post; instead, provide answers that don't require clarification from the asker. - From ReviewPun
In Android Studio click on app folder, then src folder, then main folder . Inside main folder you can add Assets folder.Martimartial
B
5

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.

Botanize answered 20/3, 2018 at 13:57 Comment(0)
H
5
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 
Hardhearted answered 14/3, 2019 at 6:33 Comment(0)
F
5

You easily adding an assets folder using Android Studio like this:

enter image description here

Footy answered 20/8, 2023 at 1:10 Comment(0)
M
4

Either create a directory under /app/src/main or use studio File-> New -> Folder - > Assets Folder.

Melanism answered 15/2, 2018 at 4:52 Comment(0)
C
3

In Android Studio right-click Folder in app->src->main then create new DIRECTORY name that assets.

Commemoration answered 19/9, 2020 at 15:13 Comment(0)
C
2

It seems that nobody mentioned this:
You can define it in Project Structure > Project Settings:

enter image description here

Cruel answered 4/12, 2021 at 17:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.