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?

16 Answers 11

up vote 1380 down vote accepted

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

1 upvote
  flag
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? – kalehv
3 upvote
  flag
@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. – CommonsWare
12 upvote
  flag
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) – kalehv
1 upvote
  flag
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. – srowley
upvote
  flag
Jeez. The android documentation needs to be way more explicit about this kind of stuff. This was unnecessarily hard to find. – Ray Kiddy
upvote
  flag
I was about go crazy, thanks. – Lazy
upvote
  flag
@CommonsWare Thanks for this answer, please can you check this question if you can help, : //allinonescript.com/q/33027188/2595059. Thanks – George
upvote
  flag
how to read a file once assets folder is created . InputStream stream = getApplicationContext().getResources().getAssets().open("cou‌​ntries.txt"); It gives me filenotfound excepton – Bora
2 upvote
  flag
@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, Complete, and Verifiable example. – CommonsWare
upvote
  flag
@CommonsWare thanks – Bora
upvote
  flag
This answer is no longer exactly accurate, as the way Android Studio renders the file structure has changed. – mavrosxristoforos
upvote
  flag
@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). – CommonsWare
upvote
  flag
@CommonsWare 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. – mavrosxristoforos

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

8 upvote
  flag
My .iml doesn't have this, what portion of the file do I add this to? – nitsujri
11 upvote
  flag
you probably have 2 .iml files, check both of them. – fernandohur
1 upvote
  flag
check app.iml not <Project-Name>.iml – Tony
1 upvote
  flag
Allways in .im at root of you src.. not in the project directory.. Thats just for gradle stuff. – Sindri Þór

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'
        }
    }
}
upvote
  flag
is this necessary if one follows the convention? – Rabiees

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.

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

74 upvote
  flag
this solution is for Android Studio 1.0 and above. Other answers are obsolete. – Tan Jit Ren
26 upvote
  flag
Graphical illustration makes all the difference in the world! – fullMoon
2 upvote
  flag
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. :( – Scott Biggs
2 upvote
  flag
@ScottBiggs Once you add the assets folder as shown above (on v2.1.2), it should be visible inside app > src > main – Prince
2 upvote
  flag
What would be the link to this folder in a java file? – VeeK

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

1 upvote
  flag
This is more like a comment than an answer, but it saved me so +1 – ssimm

Simple follow this

File > New > folder > assets Folder

Note : App must be selected before creating folder.

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

2 upvote
  flag
This is the TL;DR version of the accepted answer and is actually useful. – Guillaume Perrot

need configure parameter for gradle
i hope is will work

// file: build.gradle  
sourceSets {
    main {
        assets.srcDirs = ['src/main/res/icon/', 'src/main/assets/']
    }
}

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.

3 upvote
  flag
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 Review – Gaurav Dave
1 upvote
  flag
In Android Studio click on app folder, then src folder, then main folder . Inside main folder you can add Assets folder. – Dharmendra Pratap
1 upvote
  flag
Don't add in the comment, use edit link and update your answer – Gaurav Dave

Click over main → new directory → directory name "assets"

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

upvote
  flag
it works,thanks – Pankaj Kant Patel

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

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.

File > New > folder > assets Folder

Assets Folder

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.