#android #crash
#Android #сбой
Вопрос:
Я только начал работать на Java и Android. Этот веб-сайт уже мне очень помог.
Здесь я застрял с чем-то очень простым. На другом языке у меня никогда не было проблем, но там..
Если я попробую следующее, у меня не будет ошибки в eclipse, но после запуска в эмуляторе произойдет сбой программного обеспечения в строке «если».
String message = mOutEditText.getText().toString();
if (message.length() > 4) {
Если я использую if (8> 4) {, то у меня нет проблем.
Я также пытался if (message.toString.length() > 4) {
без какого-либо успеха.
Спасибо за вашу помощь.
Комментарии:
1. Вы отлаживали свою программу и проверяли?
2. что говорит logcat? это исключение нулевого указателя?
3. Может ли случиться так, что ваша
message
переменная являетсяnull
? Какого рода ошибку вы получаете?4. Поделитесь своим полным кодом и LogCat, это, вероятно, легко исправить. Вы также правильно инициализируете mOutEditText?
5. @Harinder Если вы попытаетесь вызвать любой метод для нулевого объекта, вы получите NPE.
Ответ №1:
Трудно сказать, не зная ошибки, но практически единственное, что может пойти не так с этой строкой, — это NullPointerException
т. е. Когда у вас возникает эта проблема, это потому, что:
String message = mOutEditText.getText().toString();
эффективно решает:
String message = null;
Скорее всего, это потому, что в вашем EditText
файле нет текста (судя по имени вашей переменной, я предполагаю, что вы используете EditText
).
Вы можете учесть этот случай, убедившись, что это message
не null
так. Вот один из способов сделать это:
if (message != null amp;amp; message.length() > 4) {
Комментарии:
1. Да, Гэри Буйн, это правильно. На самом деле я привык, что эта функция возвращает 0 и не вылетает на другом языке. Я привык к C / VB / PHP, а Java действительно отличается, я думаю, мне предстоит непростая работа! Спасибо 🙂
2. @Lemon Да, в Java
null != 0
в отличие от C.
Ответ №2:
Например, вы инициализируете сообщение как статическую строку типа «Переполнение стека» и пытаетесь
message.length();
если это работает, то с функцией toString() проблем нет.
Желаю удачи..!!
Ответ №3:
В String есть два способа получения длины строки: -это работает должным образом
String message=»»; защищенная пустота при создании (пакет сохранен в InstanceState){ s.length();}