Intereting Posts
Пользовательский вид для ActionBar.Tab не отображается правильно Eclipse: один проект PhoneGap для iPhone и Android? Студия Android: эмулятор работает, но не отображается в Run App «выберите запущенное устройство» Detect Twitter представить Android Как применить фильтрацию видео в Android? Android: RadioButton внутри вложенной компоновки под RadioGroup выпадает из группы Обновление приложения для Android-разработчика Как определить, попало ли событие касания в EditText? Получить координаты, щелкнув по карте (openstreetmaps) Отключить мягкую клавиатуру из EditText, но разрешить копирование / вставку? Как работают платежи NFC? Установите меню для нескольких панелей инструментов на android Android отправляет почтовые запросы на сервер django csrf failing Как избавиться от подчеркивания в Spannable String с помощью объекта Clickable? Не может получить доступ к памяти по адресу 0X1 после настройки gdb и eclipse для отладки общей библиотеки из приложения Android

Ошибка IBitmapDescriptorFactory не инициализирована

Я пытаюсь получить маркер с пользовательским значком в Google Maps Android API v2. Я только что изменил один из примеров, которые предоставляет Google. Я добавил .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)) в RawMapViewDemoActivity в методе setUpMap().

 private void setUpMapIfNeeded() { if (mMap == null) { mMap = ((MapView) findViewById(R.id.map)).getMap(); if (mMap != null) { setUpMap(); } } } private void setUpMap() { mMap.addMarker(new MarkerOptions() .position(new LatLng(0, 0)) .title("Marker") .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))); } 

Но я всегда получаю «IBitmapDescriptorFactory не инициализирован».

 12-18 15:40:54.356: E/AndroidRuntime(12591): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mapdemo/com.example.mapdemo.RawMapViewDemoActivity}: java.lang.NullPointerException: IBitmapDescriptorFactory is not initialized 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.app.ActivityThread.access$600(ActivityThread.java:130) 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.os.Handler.dispatchMessage(Handler.java:99) 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.os.Looper.loop(Looper.java:137) 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.app.ActivityThread.main(ActivityThread.java:4745) 12-18 15:40:54.356: E/AndroidRuntime(12591): at java.lang.reflect.Method.invokeNative(Native Method) 12-18 15:40:54.356: E/AndroidRuntime(12591): at java.lang.reflect.Method.invoke(Method.java:511) 12-18 15:40:54.356: E/AndroidRuntime(12591): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 12-18 15:40:54.356: E/AndroidRuntime(12591): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 12-18 15:40:54.356: E/AndroidRuntime(12591): at dalvik.system.NativeStart.main(Native Method) 12-18 15:40:54.356: E/AndroidRuntime(12591): Caused by: java.lang.NullPointerException: IBitmapDescriptorFactory is not initialized 12-18 15:40:54.356: E/AndroidRuntime(12591): at com.google.android.gms.internal.at.a(Unknown Source) 12-18 15:40:54.356: E/AndroidRuntime(12591): at com.google.android.gms.maps.model.BitmapDescriptorFactory.d(Unknown Source) 12-18 15:40:54.356: E/AndroidRuntime(12591): at com.google.android.gms.maps.model.BitmapDescriptorFactory.fromResource(Unknown Source) 12-18 15:40:54.356: E/AndroidRuntime(12591): at com.example.mapdemo.RawMapViewDemoActivity.setUpMap(RawMapViewDemoActivity.java:67) 12-18 15:40:54.356: E/AndroidRuntime(12591): at com.example.mapdemo.RawMapViewDemoActivity.setUpMapIfNeeded(RawMapViewDemoActivity.java:58) 12-18 15:40:54.356: E/AndroidRuntime(12591): at com.example.mapdemo.RawMapViewDemoActivity.onCreate(RawMapViewDemoActivity.java:43) 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.app.Activity.performCreate(Activity.java:5008) 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 12-18 15:40:54.356: E/AndroidRuntime(12591): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 12-18 15:40:54.356: E/AndroidRuntime(12591): ... 11 more 

В BitmapDescriptorFactory говорится:

Перед использованием любых методов из этого класса вы должны выполнить одно из следующих действий, чтобы убедиться, что этот класс инициализирован:

  • Подождите, пока GoogleMap станет доступным из MapFragment или MapView, добавленного в ваше приложение. Вы можете проверить, что GoogleMap доступен, вызывая метод getMap () и проверяя, что возвращаемый объект не равен нулю.

  • Вызовите MapsInitializer.initialize (Контекст). Пока com.google.android.gms.common.GooglePlayServicesNotAvailableException не будет выбрано GooglePlayServicesNotAvailableException, этот класс будет правильно инициализирован.

Я сделал первый, но все еще получаю эту ошибку. Какие-либо предложения?

Solutions Collecting From Web of "Ошибка IBitmapDescriptorFactory не инициализирована"

Вызовите MapsInitializer.initialize(getApplicationContext()) в onCreate()

Вызов в onCreate()

 try { MapsInitializer.initialize(getApplicationContext()); } catch (GooglePlayServicesNotAvailableException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

Переместите свой код, который будет называться «onMapReady ()», обратный вызов, предоставляемый API GoogleMaps.

Это будет работать!

  GoogleApiAvailability googleApiAvailability=GoogleApiAvailability.getInstance(); int status=googleApiAvailability.isGooglePlayServicesAvailable(getActivity()); if (status != ConnectionResult.SUCCESS) { int requestCode = 10; Dialog dialog = googleApiAvailability.getErrorDialog(getActivity(),status,requestCode); dialog.show(); }else {}