Xamarin Android Assets.Open ส่งข้อยกเว้น FileNotFound

ดูเหมือนจะง่ายมาก แต่ไม่รู้ว่าทำไมฉันถึงใช้วิธี Assets.open ไม่ได้โดยไม่ได้รับข้อยกเว้น FileNotFound

ฉันติดตามตัวอย่างใน xamrain.com http://docs.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/

และยังใช้งานไม่ได้

ฉันเพิ่มไฟล์ txt ใต้โฟลเดอร์ Assets ตั้งค่า Build Action เป็น "AndroidAsset" ฉันลองตั้งค่า COpy เป็น Output Diretory เป็น "Always Copy" และ "Do not Copy"

ไม่ว่าจะผสมกันอย่างไร ฉันจะได้รับข้อยกเว้น FileNotFound เสมอ

ดูเหมือนว่านักพัฒนาคนอื่นๆ หลายคนก็เห็นปัญหาเช่นกัน และฉันไม่เห็นคำตอบที่ฉันสามารถลองได้ ขอขอบคุณถ้ามีใครสามารถให้ความกระจ่างเกี่ยวกับหัวข้อง่ายๆ นี้

ขอบคุณล่วงหน้า


person biprism    schedule 13.05.2014    source แหล่งที่มา


คำตอบ (4)


ประการแรก หากไม่เห็นรหัสของคุณ คุณจะไม่มีทางเห็นข้อผิดพลาดใดๆ ที่คุณอาจพลาดไป เป็นเรื่องง่ายที่จะพลาดปัญหาชื่อไฟล์หรือปัญหาอื่นๆ ที่อาจไม่ชัดเจนนัก

อย่างไรก็ตาม ฉันจะพยายามให้คำแนะนำแก่คุณบ้าง

การตั้งค่า "คัดลอกไปยังไดเรกทอรีผลลัพธ์" ไม่สำคัญสำหรับทรัพยากร Android การดำเนินการสร้างของ AndroidAsset จะช่วยให้แน่ใจว่าไฟล์จะรวมอยู่ในแพ็คเกจแอป ซึ่งช่วยให้คุณโหลดได้โดยใช้ Assets.Open()

เพื่อยืนยันสิ่งนี้ ให้ค้นหาไฟล์ .apk ที่คอมไพล์แล้วในโฟลเดอร์ bin/debug หรือ bin/release ไฟล์ .apk เป็นเพียงไฟล์เก็บถาวร ดังนั้นคุณจึงสามารถเปิดไฟล์ด้วย winrar หรือ 7-zip หรือเปลี่ยนชื่อเป็น .zip แล้ว windows จะเปิดขึ้นมา

หากไฟล์อยู่ในโฟลเดอร์ทรัพย์สิน แสดงว่ารหัสของคุณอาจมีปัญหา คุณควรโพสต์ไว้ในคำถามของคุณ หากไม่มีไฟล์อยู่ ให้ลองทำความสะอาดโปรเจ็กต์ของคุณ หรือลบโฟลเดอร์ bin เพื่อบังคับให้สร้างใหม่และทำแพ็กเกจใหม่

person Tom Bowers    schedule 13.05.2014
comment
ขอบคุณ ฉันคิดว่าฉันได้ผลแล้ว ไม่รู้ว่าทำไมมันทำงานไม่ถูกต้อง ฉันต้องทำโค้ดใหม่ และตอนนี้ฉันก็สบายดีแล้ว - person biprism; 20.05.2014

ตรวจสอบคุณสมบัติของไฟล์ ฉันต้องตั้งค่า "Build Action" เป็น AndroidAsset และหลังจากนั้นก็ใช้งานได้ดี

person iwanlenin    schedule 14.07.2015

ฉันเคยประสบปัญหานี้มาก่อน และในที่สุดฉันก็พบไฟล์รูปภาพในเนื้อหาไดเรกทอรีของฉัน/ ตั้งชื่อตามตัวอักษรจีน ดังนั้นรูปภาพในเนื้อหาจึงไม่ได้โหลดด้วยวิธีที่ถูกต้อง

ฉันเดาว่าคุณควรตรวจสอบชื่อไฟล์หากมีการเข้ารหัสไม่ดี

person 江亦涵    schedule 05.09.2014

คุณควรลองใช้ไฟล์ชื่อเป็นตัวพิมพ์เล็กเท่านั้น บางครั้ง android จะแปลงชื่อให้ไฟล์คู่ล่างมีตัวพิมพ์ใหญ่

person valentasm    schedule 24.10.2014