Intereting Posts
Как выровнять ImageView снизу, заполнить его ширину и высоту и сохранить соотношение сторон? Как протестировать приложение Android в нескольких действиях? Java.lang.IllegalStateException в методе MediaPlayer.isplaying () Сохранить изображение на SD-карте из ресурса drawble на Android Приложение Android не совместимо с устройствами, которые загружают Google Play Как создать форму с твердым, угловым, штриховым кодом в Java-коде? Курсор финализирован без предварительного закрытия () Android Обработка заголовка ActionBar с помощью стека фрагментов? Устройства Samsung Galaxy не могут использовать geolocation.getCurrentPosition SQLiteDiskIOException в Android Добавление ActionBar к шаблону активности Google Карт по умолчанию в Android Studio Ленивая загрузка изображений в ListView Список отображения Android с помощью expandableListView Карты Google не отображаются на Android в режиме выпуска Как я могу создать эффект щелчка изображения, как кнопка на Android?

Long.getLong () failing, возвращающий значение null в действительную строку

Я провел последние два часа, отлаживая то, что кажется крайне маловероятным. Я отключил метод вторичной активности Android для этого:

public void onClick(View v) { String str = "25"; long my_long = Long.getLong(str); } // onClick (v) 

И да, я получаю сбой с хорошим ol 'NullPointerException:

09-11 02: 02: 50.444: ОШИБКА / AndroidRuntime (1588): обработчик нечистоты: выход из основного потока из-за неперехваченного исключения 09-11 02: 02: 50.464: ERROR / AndroidRuntime (1588): java.lang.NullPointerException

Похоже, что (из других тестов), что Long.getLong (str) возвращает NULL, что приводит меня в беду. ЧТО Я НЕ ПРОПУСТИТЬ?

Заранее спасибо. Я в порядке с глупостью пропуская очевидное, но мое здравомыслие находится на линии.

Solutions Collecting From Web of "Long.getLong () failing, возвращающий значение null в действительную строку"

Вам не хватает того факта, что Long.getLong(String str) не должен синтаксически обрабатывать String до длинного, а скорее для возврата длинного значения системного свойства, представленного этой строкой. Как и другие, вам понадобится Long.parseLong(String str) .

Вы можете использовать Long.parseLong(String) вместо getLong(String) : это решит проблему.

Я думаю, что вы используете неправильную функцию Long.parseLong (str), тогда вы можете получить правильный ответ.

Long.parseLong (someString) одобрено. Не забудьте поймать NumberFormatException, если есть вероятность неповторимой строки.

Чтобы понять это, некоторые примеры:

 Long val= Long.getLong("32340"); 

Возвращает: null

 Long val = Long.getLong("32340", 3000); 

Возвращается: 3000

Использование Long.parseLong () :

 Long val = Long.parseLong("32340"); 

Возвращается: 32340

Документация описывает метод getLong () как:

Возвращает длинное значение свойства системы, идентифицируемое строкой.

Это код метода getLong () и получает только значение свойства, определенное строкой:

  public static Long getLong(String string) { if (string == null || string.length() == 0) { return null; } String prop = System.getProperty(string); if (prop == null) { return null; } try { return decode(prop); } catch (NumberFormatException ex) { return null; } } 

Если вы хотите разобрать String to Long, лучший способ – использовать метод Long.parseLong () .