Saya memiliki tata letak berikut (hampir kosong):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/set_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:contentDescription="content desc"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
</LinearLayout>
Kelas Activity berisi yang berikut:
public class TestActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
}
}
Ketika saya menjalankan ini di perangkat seluler saya, saya mendapatkan kesalahan berikut:
SpannableStringBuilder
SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
Saya telah mencoba ini dengan dan tanpa TextView dan kesalahan masih ada, saya pasti melakukan sesuatu yang secara fundamental salah untuk tata letak dasar yang menyebabkan hal ini.
Apakah ada yang punya ide tentang bagaimana saya bisa memuat ini tanpa kesalahan?
android:contentDescription
dariLinearLayout
, karena wadah itu tidak fokus dan karena itu deskripsi tidak akan digunakan AFAIK.Jawaban:
Saya telah mengalami entri kesalahan yang sama di LogCat. Dalam kasus saya ini disebabkan oleh keyboard pihak ke-3 yang saya gunakan. Ketika saya mengubahnya kembali ke keyboard Android, entri kesalahan tidak muncul lagi.
sumber
Karena kesalahan yang Anda dapatkan tidak terkait dengan
EditText
, maka itu tidak terkait dengan keyboard Anda.Kesalahan yang Anda dapatkan bukan hasil dari kode Anda; Anda mungkin sedang menguji pada perangkat Samsung yang memiliki TouchWiz Samsung.
Saya memiliki kesalahan yang sama, kemudian saya uji pada Nexus S (juga oleh Samsung, tetapi OS Android murni tanpa TouchWiz) dan saya tidak mendapatkan kesalahan ini.
Jadi, dalam kasus Anda, abaikan saja kesalahan ini saat menguji pada perangkat! :)
sumber
Melihat kode Anda, saya tidak yakin mengapa Anda mendapatkan kesalahan itu, tetapi saya memiliki kesalahan yang sama tetapi dengan bidang EditText.
Mengubah
android:inputType="text"
(atau variasi teks inputType lainnya) menjadiandroid:inputType="textNoSuggestions"
(atauandroid:inputType="textEmailAddress|textNoSuggestions"
, misalnya) memperbaikinya untuk saya.Anda juga dapat mengatur ini dalam Kode dengan sesuatu seperti
Sepertinya Android mengasumsikan secara default bahwa bidang EditText akan memiliki saran. Ketika tidak, itu salah. Tidak 100% yakin dengan penjelasan itu, tetapi perubahan yang disebutkan di atas memperbaikinya untuk saya.
http://developer.android.com/reference/android/text/Spanned.html#SPAN_EXCLUSIVE_EXCLUSIVE
Semoga ini membantu!
sumber
Di ponsel android Anda, masuk ke:
settings -> application manager -> all -> keyboard samsung dan kemudian klik "hapus cache"
(hapus semua data yang dikumpulkan oleh aplikasi ini).
sumber
Coba gunakan keyboard Android default itu akan hilang
sumber
Jelaskan bahwa Anda telah memberikan nilai pada MainAcitivity Anda untuk metode berikut diCreateOptionsMenu dan onCreate
Dalam beberapa kasus, pengembang menghapus pernyataan "return super.onCreateOptionsMenu (menu)" dan berubah menjadi "return true".
sumber
Dalam kode Java:
sumber
Saya memiliki peringatan yang sama dan menemukan bahwa menghapus @id yang tidak digunakan menyingkirkan peringatan itu. Bagi saya itu jelas karena @id dikaitkan dengan daftar textViews yang berkembang yang terhubung ke database, jadi ada peringatan untuk setiap entri.
sumber
Masood Moshref benar, kesalahan ini terjadi karena menu pilihan Menu tidak disiapkan dengan kurang "return super.onCreateOptionsMenu (menu)" dalam metode onCreate ().
sumber
Untuk mencoba men-debug kesalahan ini, pertama pergi ke terminal / konsol android Anda dan jalankan perintah ini:
maka jika output keluar sebagai aplikasi Anda ... itu adalah aplikasi Anda yang menyebabkan kesalahan. Cobalah mencari yang kosong
Strings
yang Anda lewatilayout
.Saya memiliki masalah yang sama persis ini dan itu adalah kesalahan saya karena saya memasukkan kosong
String
ke tata letak saya. Setelah mengubah""
ke" "
kesalahan ini hilang.Jika Anda tidak mendapatkan aplikasi dari output konsol, maka itu adalah sesuatu yang menyebabkannya (mungkin, seperti yang orang lain katakan, keyboard android)
sumber
Saya telah menghadapi masalah yang sama. Saya hampir menghabiskan hampir beberapa minggu untuk menyelesaikan masalah ini. Akhirnya saya ragu pada diri saya dan mencoba membuat proyek lain dengan menyalin dan menempel beberapa file startup seperti SplashScreen & LoginScreen.
Tetapi dengan kode yang sama saya masih mendapatkan SPAN_EXCLUSIVE_EXCLUSIVE .
Kemudian saya telah menghapus kode handler dari layar splash dan mencoba lagi dan Wow berfungsi. Saya tidak mendapatkan masalah SPAN_EXCLUSIVE_EXCLUSIVE di logcat .
Saya bertanya-tanya, mengapa demikian? sampai saat itu tidak mendapatkan solusi lain tetapi dengan menghapus handler dari layar splash itu berfungsi.
Coba dan perbarui di sini jika sudah teratasi atau tidak.
sumber
Periksa apakah Anda memiliki elemen seperti tombol atau tampilan teks digandakan (disalin dua kali) di layar tempat ini bertemu. Saya melakukan ini tanpa disadari dan harus menghadapi masalah yang sama.
sumber
Saya mengalami masalah ini juga ketika saya menyalin beberapa teks dari Internet. Solusi saya adalah memotong teks / menghapus pemformatan sebelum melakukan pemrosesan lebih lanjut.
sumber
Saya memiliki masalah yang sama tetapi dengan listView .... saya menyelesaikannya karena saya menggunakan R.id.listView yang salah. Lihat daftar yang perlu memiliki nilai, dalam kasus saya adalah string yang saya simpan di listView2 ... jadi kode yang tepat adalah R.id.listView2
sumber
Saya memiliki masalah yang sama maka saya memperbaikinya dengan mengikuti kode!
sumber
kesalahan ini juga terjadi karena perubahan URL API. coba tekan URL yang Anda gunakan di tukang pos dan c jika itu berfungsi dengan baik. memeriksa ulang API memecahkan masalah saya
sumber
coba hindari penggunaan view dalam desain xml. Saya juga punya masalah yang sama tetapi ketika saya menghapus view. ini bekerja dengan sempurna.
seperti contoh:
juga periksa dan coba ubah dengan cara coba-coba android: inputType = "number" ke android: inputType = "text" atau lebih baik tidak menggunakannya jika tidak diperlukan. Kadang-kadang keyboard macet dan mendapat kesalahan di beberapa perangkat.
sumber
Dalam kasus saya, bidang EditText dengan inputType sebagai teks / textCapCharacters yang menutupi kesalahan ini. Saya perhatikan ini di logcat saya setiap kali saya menggunakan backspace untuk sepenuhnya menghapus teks yang diketik dalam salah satu bidang ini.
Solusi yang berhasil bagi saya adalah mengubah inputType dari bidang-bidang tersebut ke textNoSuggestions karena ini adalah tipe yang paling cocok dan tidak memberi saya kesalahan yang tidak diinginkan lagi.
sumber