Android : Error:(43) Error: Expected resource of type raw [ResourceType]

สำหรับข้อความ Error

“Error:(43) Error: Expected resource of type raw [ResourceType]”

ข้อความนี้บอกว่ามีการเรียกใช้ไฟล์ผิดประเภท ตัวอย่างเช่น


gifInputStream = context.getResources().openRawResource(titanic);

จากโค้ดมีการเปิดไฟล์ RAW ชื่อ titanic แต่ปรากฎว่าไฟล์ titanic นี้เก็บอยู่ในโฟลเดอร์ “drawable”
ซึ่งเป็นโฟลเดอร์ที่เราใช้เก็บไฟล์รูปภาพทั่วไป เพราะฉะนั้นการเรียกไฟล์ titanic ก็ไม่สามารถเปิดใช้ไฟล์แบบ RAW ได้ ควรจะเรียกใช้แบบนี้แทน R.drawable.titanic

แต่ทว่า ถ้าเราต้องการเรียกใช้เป็น RAW Resource ละจะทำได้หรือเปล่า? คำตอบคือทำได้ มีแนวทางปฏิบัติ 2 แนวทางดังนี้

1. สร้างโฟลเดอร์ “raw” ภายใต้โฟลเดอร์ “res” เป็น ../res/raw (ซึ่งอยู่ที่เดียวกับ drawable) แล้วย้ายไฟล์ titanic มาอยู่ใน raw/ folder ก็จบ
2. หรือแก้โค้ดตรงบรรทัดที่เรียก จากเดิม
gifInputStream = context.getResources().openRawResource(titanic);
แก้เป็น
gifInputStream = context.getResources().openRawResource(+ titanic);

นั่นคือเพิ่มเครื่องหาย “+” เข้าไป

ครับเพียงเท่านี้ Error นี้ก็จะหายไป

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *