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 นี้ก็จะหายไป