Saya telah mendeklarasikan string panjang dalam string.xml
sebuah aplikasi.
Dinyatakan seperti ini
<string name="terms">PLEASE READ THESE TERMS OF USE CAREFULLY BY ACCESSING THIS .................</string>
Tetapi ini memberikan kesalahan berikut:
error: Apostrophe not preceded by \ (in PLEASE READ THESE TERMS OF USE CAREFULLY
Jawaban:
posting string lengkap Anda. Padahal, tebakan saya adalah ada karakter apostrof (') dalam string Anda. ganti dengan (\ ') dan itu akan memperbaiki masalah. sebagai contoh,
Ref:
http://www.mrexcel.com/forum/showthread.php?t=195353
https://code.google.com/archive/p/replicaisland/issues/48
sumber
<string name="good_example">"This'll work"</string>
Referensi: developer.android.com/guide/topics/resources/…Larutan
Apostrop di strings.xml harus ditulis sebagai
Contoh
Dalam kasus saya, saya mengalami kesalahan dengan string ini di strings.xml saya dan saya memperbaikinya.
Di sini Anda melihat aplikasi saya dibangun dengan benar dengan kode itu.
Ini adalah string sebenarnya di aplikasi saya.
sumber
Anda harus meletakkan \ sebelum apostrof. Seperti ini \ ', Juga periksa apakah Anda sedang mengedit strings.xml dan bukan values.xml (android studio mengarahkan Anda ke file ini ketika menunjukkan kesalahan). Karena jika Anda mengedit values.xml dan mencoba mengompilasi lagi, kesalahan tetap ada. Ini terjadi pada saya baru-baru ini.
sumber
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
Mengganti apostrof dan tanda kutip
Jika Anda memiliki apostrof atau kutipan dalam string Anda, Anda harus meloloskannya atau mengapit seluruh string dalam tipe lain dari tanda kutip penutup. Misalnya, berikut beberapa sengatan yang berhasil dan tidak berhasil:
sumber
Gunakan regex ini
(?<!\\)'
untuk mencari apostrof yang tidak lolos. Ini menemukan apostrof yang tidak didahului oleh garis miring terbalik.sumber
Saya menggunakan ibrani (bahasa RTL) di strings.xml. Saya telah mencari string.xml secara manual untuk karakter ini: 'daripada saya menambahkan karakter escape \ di depannya (sekarang terlihat seperti \') dan masih mendapatkan kesalahan yang sama!
Saya mencari lagi untuk karakter 'dan saya mengganti karakter' dengan \ '(tulisan eng), karena ini menunjukkan kanan ke kiri terlihat seperti itu' \ di strings.xml !!
Masalah terpecahkan.
sumber
Anda mungkin dapat menggunakan unicode yang setara dengan apostrof dan karakter lain yang tidak didukung dalam string xml. Padanan Apostrof adalah "\ u0027".
sumber
1. untuk kesalahan: tanda kutip tidak lolos dalam string
apa yang saya temukan adalah bahwa alat AAPT2 menunjuk ke baris yang salah di xml, kadang-kadang. Jadi Anda harus memperbaiki seluruh file strings.xml
Di Android Studio, dalam penggunaan file masalah:
Edit-> temukan-> ganti
Kemudian tulis di bidang pertama \ '(atau \ &,>, \ <, \ ")
di tempat kedua' (atau &,>, <,")
lalu ganti masing-masing jika perlu. (Atau "reptlace all" in case dengan ' )
Kemudian di kolom pertama masukkan lagi '(atau &,>, <, ")
dan di kolom kedua tulis \'
lalu ganti masing-masing jika diperlukan. (Atau" ganti semua "dengan ')
2. untuk simbol bermasalah lainnya yang
saya gunakan untuk mengomentari setiap setengah bagian berikutnya + membangun kembali sampai saya tidak menemukan tanda yang salah.
Misalnya, kata yang diloloskan "\ update" tiba-tiba menjatuhkan kesalahan seperti itu :)
sumber
Jawaban terbaik dari hanya melarikan diri
'
dengan\'
karya-karya tapi aku tidak suka solusi karena ketika menggunakan mengganti semua dengan'
untuk\'
, hanya bekerja sekali. Kedua kalinya Anda akan pergi\\'
.Oleh karena itu, gunakan:
\u0027
.sumber