จะวางโฟลเดอร์ 'ทรัพย์สิน' ใน Android Studio ได้อย่างไร


1413

ฉันสับสนเกี่ยวกับassetsโฟลเดอร์ มันไม่ได้สร้างขึ้นโดยอัตโนมัติใน Android Studio และฟอรัมเกือบทั้งหมดที่พูดถึง Eclipse

ไดเรกทอรีทรัพย์สินสามารถกำหนดค่าใน Android Studio ได้อย่างไร?

คำตอบ:


1670

เนื่องจาก Android Studio ใช้ระบบการสร้างแบบ Gradle ใหม่คุณควรใส่assets/ในชุดซอร์ส (เช่นsrc/main/assets/)

ในโครงการ Android Studio โดยทั่วไปคุณจะมีapp/โมดูลพร้อมmain/ซอร์ส ( app/src/main/นอกรูทโครงการ) และดังนั้นสินทรัพย์หลักของคุณจะเข้าapp/src/main/assets/มา อย่างไรก็ตาม:

  • หากคุณต้องการสินทรัพย์ที่เฉพาะเจาะจงสำหรับการสร้างเช่นdebugเมื่อเทียบกับreleaseคุณสามารถสร้างแหล่งที่มาสำหรับบทบาทเหล่านั้น (เช่น, app/src/release/assets/)

  • รสชาติผลิตภัณฑ์ของคุณสามารถมีแหล่งที่มาพร้อมสินทรัพย์ (เช่นapp/src/googleplay/assets/)

  • การทดสอบการใช้เครื่องมือของคุณสามารถมีแหล่งandroidTestข้อมูลที่มีเนื้อหาที่กำหนดเอง (เช่นapp/src/androidTest/assets/) แต่ต้องแน่ใจว่าได้ขอInstrumentationRegistryให้getContext()ไม่getTargetContext()เข้าถึงเนื้อหาเหล่านั้น

นอกจากนี้การแจ้งเตือนอย่างรวดเร็ว: สินทรัพย์เป็นแบบอ่านอย่างเดียวในขณะใช้งานจริง ใช้จัดเก็บข้อมูลภายใน , จัดเก็บข้อมูลภายนอกหรือจัดเก็บเข้าถึงกรอบสำหรับอ่านเนื้อหา / เขียน


1
ฉันกำลังพยายามรวมแบบอักษรที่กำหนดเองในไดเรกทอรีสินทรัพย์ ฉันควรจะไปด้วยการวางไฟล์. ttf เป็น src / main / assets / font.ttf หรือไม่ หรือฉันจำเป็นต้องกำหนดแบบอักษรด้วยรหัสให้กับตัวควบคุมเพื่อดูหรือไม่
kalehv

3
@kalehv: "หรือฉันต้องกำหนดแบบอักษรด้วยรหัสอย่างชัดเจนให้กับส่วนควบคุมเพื่อดูหรือไม่" - โอ้แน่นอน คุณจะต้องโทรหาวิดเจ็ตsetTypeface()ทั้งหมดTextView(และอื่น ๆ ที่สืบทอดมาTextView) ซึ่งคุณต้องการใช้แบบอักษรนี้
CommonsWare

16
เย็น. ที่ทำงานเหมือนจับใจ ฉันหวังว่าจะมีวิธีรวมแบบอักษรของสินทรัพย์ (กำหนดเอง) ไว้ใน Styles.xml แทนที่จะใช้ผ่านรหัส (ความปรารถนาของฉันอาจฟังดูโง่เกินกว่าจะรับมือได้ฉันเป็นผู้เริ่มต้นขอโทษด้วยถ้า :-P)
kalehv

1
ขอบคุณ! ฉันค้นหาสิ่งนี้มาหลายชั่วโมงแล้ว ฉันพยายามสร้างไดเรกทอรีย่อยสำหรับเนื้อหาภายใต้ / src / main / res / และไดเรกทอรีนั้นถูกลบออกจาก apk build
srowley

2
@Bora: แล้วคุณไม่ได้countries.txtอยู่ในassets/ไดเรกทอรี นี่คือโครงการตัวอย่างที่คัดลอกไฟล์จากสินทรัพย์ไปยังที่เก็บข้อมูลภายใน หากคุณมีข้อสงสัยเพิ่มเติมกรุณาถามคำถามแยกกองมากเกินที่คุณให้เป็นตัวอย่างที่สามารถทำซ้ำได้น้อยที่สุด
CommonsWare

1472

ให้ Android Studio ทำเพื่อคุณ

  1. ใน Android สตูดิโอ ( 1.0 และข้างต้น ) คลิกขวาบนโฟลเดอร์และไปที่ป้อนคำอธิบายรูปภาพที่นี่Assets Folder

ป้อนคำอธิบายรูปภาพที่นี่

  1. Finishบนหน้าจอถัดไปเพียงแค่คลิก

ป้อนคำอธิบายรูปภาพที่นี่

และ voila! มันจะสร้างassetsโฟลเดอร์ในmainชุดต้นทางเป้าหมาย

ป้อนคำอธิบายรูปภาพที่นี่


92
วิธีนี้ใช้สำหรับ Android Studio 1.0 ขึ้นไป คำตอบอื่น ๆ ล้าสมัยแล้ว
JR Tan

39
ภาพประกอบกราฟิกสร้างความแตกต่างในโลก!
Badr

2
ปัญหา: ใน Android Studio เวอร์ชันใหม่กว่า (ฉันใช้ 2.1.2) โฟลเดอร์สินทรัพย์ที่ว่างเปล่าจะไม่แสดงในหน้าต่าง Project Files ทำให้เพิ่มไฟล์ได้ยาก :(
Scott Biggs

2
@ScottBiggs เมื่อคุณเพิ่มโฟลเดอร์ทรัพย์สินตามที่แสดงด้านบน (บน v2.1.2) มันควรจะปรากฏในapp> src> main
Prince

2
ลิงก์ไปยังโฟลเดอร์นี้ในไฟล์ java คืออะไร
VeeK

124

มองเข้าไปในไฟล์. iml ของโปรเจคคุณจะเห็นบรรทัดต่อไปนี้:

 <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />

ซึ่งหมายความว่ามีการประกาศโฟลเดอร์ "ทรัพย์สิน" สำหรับ Gradle แล้ว คุณจะต้องสร้างมันภายใต้src/main/(ฉันใช้ Android Studio 0.4.2)


8
. iml ของฉันไม่มีสิ่งนี้ฉันจะเพิ่มส่วนใดของไฟล์ลงในส่วนนี้
nitsujri

11
คุณอาจมีไฟล์. iml 2 ไฟล์ให้ตรวจสอบทั้งสองไฟล์
fernandohur

1
ตรวจสอบ app.iml ไม่ใช่ <Project-Name> .iml
Tony

1
Allways ใน. ฉันที่รากของคุณ src .. ไม่ได้อยู่ในไดเรกทอรีโครงการ .. นั่นเป็นเพียงสำหรับสิ่งที่ไล่ระดับ
Sindri Þór

86

เลือกappโฟลเดอร์แล้ว:

File> New> folder> assets Folder,

ป้อนคำอธิบายรูปภาพที่นี่

ตำแหน่งเริ่มต้นอยู่ใน/mainโฟลเดอร์

ป้อนคำอธิบายรูปภาพที่นี่


2
นี่เป็นรุ่น TL; DR ของคำตอบที่ยอมรับและมีประโยชน์จริง ๆ
Guillaume Perrot

45

ก่อนอื่นโฟลเดอร์ "ทรัพย์สิน" ทั้งหมดจะไม่ถูกสร้างขึ้นโดยอัตโนมัติกับโครงการ เราต้องสร้างมันขึ้นมา

ตำแหน่งของโฟลเดอร์สินทรัพย์คือ: แอป> src> เนื้อหา

โปรดดูภาพง่ายๆด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

หมายเหตุ:สำหรับการสร้างโฟลเดอร์สินทรัพย์เพียงคลิกที่ Project => คลิกขวา => เลือกใหม่ => โฟลเดอร์ => สินทรัพย์ มันจะสร้างโฟลเดอร์สินทรัพย์


หากมือใหม่คนอื่นรู้สึกสับสนกับคำตอบทั้งหมดนี้เช่นฉันโครงสร้างโฟลเดอร์อาจดูแตกต่างไปตามการเลือกที่มุมซ้ายบน Mine เป็น "Android" ในขณะที่ทุกคนที่นี่ใช้ "Project" หรือ "Project Files"
Big_Chair

โครงสร้างโครงการจะแตกต่างกันไปตามสิ่งที่คุณเลือกสำหรับโครงสร้างโครงการโครงการไฟล์โครงการแพ็คเกจ Android ฯลฯ แต่คุณทำตามหน้าจอที่ฉันแบ่งปันและดูการเลือกประเภทโครงสร้างโครงการ
Lovekush Vishwakarma

39

ง่ายทำตามขั้นตอนเหล่านี้

ไฟล์> ใหม่> โฟลเดอร์> โฟลเดอร์สินทรัพย์

หมายเหตุ:ต้องเลือกแอปก่อนสร้างโฟลเดอร์


29

ใน android studio คุณสามารถระบุแหล่งที่มา res โฟลเดอร์สินทรัพย์ตั้งอยู่ สำหรับแต่ละโมดูล / แอปในไฟล์ build.gradle คุณสามารถเพิ่มสิ่งต่อไปนี้:

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    sourceSets {
        main {
            java.srcDirs = ['src']
            assets.srcDirs = ['assets']
            res.srcDirs = ['res']
            manifest.srcFile 'AndroidManifest.xml'
        }
    }
}

สิ่งนี้จำเป็นหรือไม่ถ้าหากใครทำตามอนุสัญญา?
H.Rabiee

สิ่งนี้มีประโยชน์มากหากโครงการของคุณไม่ได้ถูกสร้างขึ้นจากแม่แบบของ Android Studio (เช่นโคลนจากซอร์สโค้ด AOSP)
PhạmNguyễnHoàng

22

เพียงกดปุ่ม Shift สองครั้งแล้วพิมพ์โฟลเดอร์สินทรัพย์

เลือกที่จะสร้างในสถานที่ที่ถูกต้อง


1
เรียบง่ายที่สุด! (Y)
GreenROBO

นี่เป็นความลับ ว้าว. ขอบคุณ
ralphgabb

18

คลิกที่หลัก→ใหม่ -> ไดเรกทอรี→และพิมพ์เป็นชื่อ "ทรัพย์สิน"

หรือ ... main -> new -> folder -> โฟลเดอร์ asset (ดูภาพ)

ป้อนคำอธิบายรูปภาพที่นี่



10

หากคุณลองสัญลักษณ์แสดงหัวข้อย่อยทั้งหมดของคุณในหัวข้อนี้เปล่าลองทำความสะอาดโครงการของคุณ ในกรณีของฉันมันทำงานเฉพาะหลังจากProjet->clean



9

สองทาง:

  1. เลือกแอพ / โฟลเดอร์หลักคลิกขวาแล้วเลือกใหม่ => โฟลเดอร์ => โฟลเดอร์สินทรัพย์ มันจะสร้างไดเรกทอรี 'ทรัพย์สิน' ในหลัก

  2. เลือกโฟลเดอร์หลักคลิกขวาแล้วเลือกใหม่ => ไดเรกทอรีป้อนชื่อเป็น 'สินทรัพย์' => ตกลง

ป้อนคำอธิบายรูปภาพที่นี่


7

เมื่ออัปเกรดเป็นรุ่นวางจำหน่ายของ Android Studio คุณอาจถูกเปลี่ยนเป็นมุมมองโครงการ Android ใหม่โดยอัตโนมัติ (ดูที่นี่สำหรับข้อมูลเพิ่มเติม) ถ้าคุณสลับกลับไปเป็นมุมมองโครงการหรือแพคเกจคุณควรเห็นลำดับชั้นของโฟลเดอร์มาตรฐานของโครงการที่ใช้ Gradle จากนั้นอ้างถึงคำตอบของ CommonsWareสำหรับตำแหน่งที่เหมาะสม



6

ต้องการกำหนดค่าพารามิเตอร์สำหรับ gradle
ฉันหวังว่าจะทำงาน

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

6
Src/main/Assets

อาจไม่แสดงบนแถบด้านข้างของคุณหากเลือกแอพแล้ว คลิกเมนูแบบเลื่อนลงที่ด้านบนซึ่งระบุว่า android และเลือกแพ็คเกจ คุณจะเห็นมันแล้ว


3

ขั้นตอนที่ 1: ไปที่ไฟล์ ขั้นตอนที่ 2: ไปที่โฟลเดอร์ ขั้นตอนที่ 3: สร้างโฟลเดอร์สินทรัพย์

ในโฟลเดอร์สินทรัพย์ให้ใส่แบบอักษรและใช้หากจำเป็น


2

ใน Android Studio ให้คลิกที่appโฟลเดอร์จากนั้นเลือกsrcโฟลเดอร์จากนั้นเลือกmainโฟลเดอร์ ภายในโฟลเดอร์หลักคุณสามารถเพิ่มโฟลเดอร์ทรัพย์สิน


3
สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม เมื่อคุณมีเพียงพอชื่อเสียงคุณจะสามารถที่จะแสดงความคิดเห็นในโพสต์ใด ๆ ; แทนที่จะให้คำตอบที่ไม่จำเป็นต้องชี้แจงจากผู้ถาม - จากการรีวิว
Gaurav Dave

2
ใน Android Studio คลิกที่โฟลเดอร์แอพจากนั้นเลือกโฟลเดอร์ src จากนั้นเลือกโฟลเดอร์หลัก ภายในโฟลเดอร์หลักคุณสามารถเพิ่มโฟลเดอร์ทรัพย์สิน
Dharmendra Pratap

2

สร้างไดเรกทอรีภายใต้ / app / src / main หรือใช้ studio file-> New -> Folder -> โฟลเดอร์ Assets


2
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 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.