Intereting Posts
Android listview первая видимая позиция ScrollView с представлением детей, как перехватить прокрутку условно Типичный файл .gitignore для Android-приложения Насколько разумным является Eclipse / ADT, когда дело доходит до проектов библиотеки Android? Что содержится в файле ./META-INF/CERT.RSA для приложения для Android? Как найти источник для платформы Android 2.3.3? Намерение андроида при установке MY приложения Проверить статус покупки Android, но не вернуть токен покупки Как протестировать аутентифицированный контент с помощью MediaPlayer на Android Может ли кто-нибудь предложить более быструю альтернативу этому алгоритму регулярного выражения? Область сенсорного экрана прокрутки в Android 6 Активность просочилась в окно com.android.internal.policy.impl.PhoneWindow$DecorView@46368a28, которое было первоначально добавлено здесь Android Canvas drawLine Как создать JavaDoc с помощью Android Studio без R и BuildConfig? Как создать приложение для Android с ICS UI, который работает с пряниками и Froyo?

getActionBar () setDisplayHomeAsUpEnabled (истина). Бросает NullPointerException при создании новой активности (Google – основное учебное пособие)

Я следую этому руководству и получаю исключение NullPointerException в методе onCreate DisplayMessageActivity в этом блоке кода:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { // Show the Up button in the action bar. getActionBar().setDisplayHomeAsUpEnabled(true); //Exception here } 

Я запускаю приложение на эмуляторе, следуя шаблону NexusOne AVD.
Когда я нажимаю кнопку отправки с текстом, набранным, я получаю исключение.

Вот журнал:

 09-03 23:02:07.586: E/AndroidRuntime(7095): FATAL EXCEPTION: main 09-03 23:02:07.586: E/AndroidRuntime(7095): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mypackage.myfirstapp/com.mypackage.myfirstapp.DisplayMessageActivity}: java.lang.NullPointerException 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.app.ActivityThread.access$600(ActivityThread.java:141) 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.os.Handler.dispatchMessage(Handler.java:99) 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.os.Looper.loop(Looper.java:137) 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.app.ActivityThread.main(ActivityThread.java:5041) 09-03 23:02:07.586: E/AndroidRuntime(7095): at java.lang.reflect.Method.invokeNative(Native Method) 09-03 23:02:07.586: E/AndroidRuntime(7095): at java.lang.reflect.Method.invoke(Method.java:511) 09-03 23:02:07.586: E/AndroidRuntime(7095): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 09-03 23:02:07.586: E/AndroidRuntime(7095): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 09-03 23:02:07.586: E/AndroidRuntime(7095): at dalvik.system.NativeStart.main(Native Method) 09-03 23:02:07.586: E/AndroidRuntime(7095): Caused by: java.lang.NullPointerException 09-03 23:02:07.586: E/AndroidRuntime(7095): at com.mypackage.myfirstapp.DisplayMessageActivity.onCreate(DisplayMessageActivity.java:40) 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.app.Activity.performCreate(Activity.java:5104) 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 09-03 23:02:07.586: E/AndroidRuntime(7095): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 09-03 23:02:07.586: E/AndroidRuntime(7095): ... 11 more 

Комментируя этот блок, приложение работает успешно.

Почему выбрано исключение NullPointerException?

Solutions Collecting From Web of "getActionBar () setDisplayHomeAsUpEnabled (истина). Бросает NullPointerException при создании новой активности (Google – основное учебное пособие)"

Вероятно, вы используете тему, которая не поддерживает ActionBar . Следовательно, getActionBar() NullPointerException .

Пытаясь использовать эту тему:

 android:theme="@android:style/Theme.Holo.Light" 

Попробуйте изменить getActionBar() на getSupportActionBar() или ((ActionBarActivity)getActivity()).getSupportActionBar() .

У меня такая же проблема.

В деятельности манифеста я объявил

 android:theme="@android:style/Theme.Black.NoTitleBar 

Что вызвало ошибку. После удаления этой строки моя панель действий работала нормально.

Это не обязательно, но есть некоторые несоответствия поведения между версиями API даже после уровня API 14.

Поведение:

Обратное изображение «<» отображается, но при нажатии оно не работает. В качестве хорошей практики я использую для реализации случая переключения, чтобы обрабатывать событие назад.

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } 

Это сработало для меня.

Я столкнулся с этой ошибкой, когда я попробовал приложение примера ящика навигации, доступное на сайте разработчика Android. Оказывается, MainActivity не расширяет ActionBarActivity и поэтому getActionBar() возвращает null, вызывающий исключение.

На самом деле ни один из других ответов не работал для меня. Я просто прокомментировал это целое, if и это сработало. Из имени метода ( и документации ) вам не нужна эта функциональность (если вы этого не хотите), поэтому никакого вреда не было.

Соответствующая документация:

Укажите, должен ли отображаться домашний экран как «вверх». Установите для этого значение true, если выбор «home» возвращается на один уровень в пользовательском интерфейсе, а не обратно на верхний уровень или на первую страницу.

Чтобы установить несколько параметров отображения сразу, см. Методы setDisplayOptions.

параметры

showHomeAsUp true, чтобы показать пользователю, что выбор дома вернется на один уровень вверх, а не на верхний уровень приложения.