Xamarin Android Assets.Open memunculkan pengecualian FileNotFound

Tampaknya sangat mudah, tetapi tidak tahu mengapa saya tidak dapat menggunakan metode Assets.open tanpa mendapatkan pengecualian FileNotFound.

Saya mengikuti contoh di xamrain.com http://docs.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/

dan masih belum berhasil.

Saya menambahkan file txt di bawah folder Assets. Setel Tindakan Build ke "AndroidAsset" Saya coba juga menyetel COpy ke Diretori Output ke "Selalu Salin" dan "Jangan Salin".

Apa pun kombinasinya, saya selalu mendapatkan pengecualian FileNotFound.

Sepertinya banyak rekan pengembang juga melihat masalahnya dan saya tidak melihat jawaban yang bisa saya coba. Hargai jika seseorang dapat menjelaskan subjek yang mudah ini.

Terima kasih sebelumnya


person biprism    schedule 13.05.2014    source sumber


Jawaban (4)


Pertama, tanpa melihat kode Anda, mustahil melihat kesalahan apa pun yang mungkin Anda lewatkan. Sangat mudah untuk melewatkan masalah nama file, atau masalah lain yang mungkin tidak begitu jelas.

Namun secara spekulatif, saya akan mencoba memberi Anda beberapa petunjuk.

Pengaturan 'Salin ke Direktori Output' tidak penting untuk sumber daya Android. Tindakan build AndroidAsset akan memastikan bahwa file disertakan dalam paket aplikasi, sehingga Anda dapat memuatnya menggunakan Assets.Open().

Untuk mengonfirmasi hal ini, lihat file .apk yang telah dikompilasi di folder bin/debug atau bin/release. File .apk hanyalah sebuah arsip, jadi Anda dapat membukanya dengan winrar, atau 7-zip, atau mengganti namanya menjadi .zip dan windows akan membukanya.

Jika file ada di folder aset, mungkin ada masalah dengan kode Anda. Anda harus mempostingnya di pertanyaan Anda. Jika file tidak ada, coba bersihkan proyek Anda, atau hapus folder bin untuk memaksa pembuatan baru dan pengemasan ulang.

person Tom Bowers    schedule 13.05.2014
comment
Terima kasih, saya rasa saya berhasil. Sejujurnya tidak tahu mengapa itu tidak berfungsi dengan benar. Saya harus mengulang kodenya dan saya baik-baik saja sekarang. - person biprism; 20.05.2014

Periksa properti file. Saya harus menyetel "Build Action" ke AndroidAsset dan setelah ini berfungsi dengan baik.

person iwanlenin    schedule 14.07.2015

Saya pernah mengalami masalah ini sebelumnya, dan akhirnya saya menemukan file gambar di direktori saya aset/ diberi nama dengan karakter Cina sehingga gambar di aset tidak dimuat dengan cara yang benar.

Saya kira Anda harus memeriksa nama file jika kodenya buruk.

person 江亦涵    schedule 05.09.2014

Anda harus mencoba memberi nama file hanya dalam huruf kecil. Terkadang Android mengonversi nama menjadi file genap lebih rendah yang berisi huruf besar.

person valentasm    schedule 24.10.2014