카카오 커스텀 말풍선

안녕하세요
카카오 지도에서
공공데이터 api에서 받아온
지도 경로 값을 가지고
마크를 띄워준 뒤 해당 마크를 클릭하면 커스텀 말풍선을
보여주는 기능을 구현 하고 있습니다.
그런데 이런 오류가 나고 어떻게 해결해야할 지 감이 안오네요.
+추가적으로 마크를 위도와 경로에 따라 mapView.addPOIItem(marker)를 사용해서 띄웠는데요
public void customView() {
//Log.d(“정”,“정”+stores.get(0).getLat()+stores.get(0).getLng()) ;
mapView.setCurrentLocationRadius(500);
mapView.setCurrentLocationRadiusStrokeColor(Color.argb(40,66, 135, 245));
mapView.setCurrentLocationRadiusFillColor(Color.argb(40,66, 135, 245));

     for(int i =0; i<stores.size();i++){
         MapPOIItem marker = new MapPOIItem();
         marker.setItemName(stores.get(i).getRemainStat());
         marker.setTag(i);
         marker.setMapPoint(MapPoint.mapPointWithGeoCoord(stores.get(i).getLat(),stores.get(i).getLng()));
         marker.setMarkerType(MapPOIItem.MarkerType.CustomImage);
         if(stores.get(i).getRemainStat()=="empty"){
             marker.setCustomImageResourceId(R.drawable.soso);
         }else if(stores.get(i).getRemainStat()=="some"){
             marker.setCustomImageResourceId(R.drawable.real);

         }else{
             marker.setCustomImageResourceId(R.drawable.real);;

         }
         marker.setCustomImageAnchor(0.5f, 1.0f);
         // 기본으로 제공하는 BluePin 마커 모양.
         //marker.setSelectedMarkerType(MapPOIItem.MarkerType.YellowPin); // 마커를 클릭했을때, 기본으로 제공하는 RedPin 마커 모양.
         //stores.get(i);
         mapView.addPOIItem(marker);

     //stores.
     //stores.put(marker.getTag(),)


 }

어뎁터만 추가해도 마크를 클릭하면 말풍선이 띄워지게 되나요 ?
*카카오 지도는 프래그 먼트에서 띄우고 있습니다.

밑에는 balloonAdapter코드와 오류 내용 입니다.

 class CustomCalloutBalloonAdapter implements CalloutBalloonAdapter {
    private final View mCalloutBalloon;

    public CustomCalloutBalloonAdapter() {
        mCalloutBalloon = getLayoutInflater().inflate(R.layout.customview, null);
    }

    @Override
    public View getCalloutBalloon(MapPOIItem poiItem) {
        //Log.d("passs ?:","size:"+stores.size());
        Store store=stores.get(poiItem.getTag());//mapPoIItem에서 가져오기
        ((TextView) mCalloutBalloon.findViewById(R.id.storename)).setText(store.getName());

        return mCalloutBalloon;
    }

    @Override
    public View getPressedCalloutBalloon(MapPOIItem poiItem) {
        return null;
    }
}

A/art: art/runtime/java_vm_ext.cc:470] JNI DETECTED ERROR IN APPLICATION: JNI FindClass called with pending exception java.lang.NullPointerException: Attempt to invoke virtual method ‘android.graphics.drawable.Drawable$ConstantState android.graphics.drawable.Drawable.getConstantState()’ on a null object reference
A/art: art/runtime/java_vm_ext.cc:470] at void net.daum.mf.map.api.MapView.prepareCalloutBalloonImageAndCallback(int, boolean) (MapView.java:2734)
art/runtime/java_vm_ext.cc:470] at void net.daum.mf.map.n.api.internal.NativeMapGraphicsViewGles.onUiEventMapView(net.daum.mf.map.n.api.NativeMapViewUiEvent) (NativeMapGraphicsViewGles.java:-2)
art/runtime/java_vm_ext.cc:470] at void net.daum.android.map.MapView.onUiEvent(net.daum.mf.map.n.api.NativeMapViewUiEvent) (MapView.java:246)
art/runtime/java_vm_ext.cc:470] at void net.daum.android.map.MapView.onDrawFrame(javax.microedition.khronos.opengles.GL10) (MapView.java:191)
art/runtime/java_vm_ext.cc:470] at void net.daum.mf.map.api.MapView.onDrawFrame(javax.microedition.khronos.opengles.GL10) (MapView.java:2356)
art/runtime/java_vm_ext.cc:470] at void android.opengl.alt.GLSurfaceView$GLThread.guardedRun() (GLSurfaceView.java:1381)
art/runtime/java_vm_ext.cc:470] at void android.opengl.alt.GLSurfaceView$GLThread.nativeRun() (GLSurfaceView.java:1181)
art/runtime/java_vm_ext.cc:470] at void net.daum.mf.map.n.api.NativeThread.run() (NativeThread.java:48)
art/runtime/java_vm_ext.cc:470]
art/runtime/java_vm_ext.cc:470] in call to FindClass
art/runtime/java_vm_ext.cc:470] from void net.daum.mf.map.n.api.internal.NativeMapGraphicsViewGles.onUiEventMapView(net.daum.mf.map.n.api.NativeMapViewUiEvent)
art/runtime/java_vm_ext.cc:470] “GLThread 1457” prio=7 tid=12 Runnable
art/runtime/java_vm_ext.cc:470] | group=“main” sCount=0 dsCount=0 obj=0x12d51450 self=0x6fce561c00
art/runtime/java_vm_ext.cc:470] | sysTid=4220 nice=-4 cgrp=default sched=0/0 handle=0x6fde13c450
art/runtime/java_vm_ext.cc:470] | state=R schedstat=( 0 0 0 ) utm=177 stm=26 core=7 HZ=100
art/runtime/java_vm_ext.cc:470] | stack=0x6fde03a000-0x6fde03c000 stackSize=1037KB
art/runtime/java_vm_ext.cc:470] | held mutexes= “mutator lock”(shared held)
art/runtime/java_vm_ext.cc:470] native: #00 pc 00000000004787ac /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+220)
art/runtime/java_vm_ext.cc:470] native: #01 pc 00000000004787a8 /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+216)
art/runtime/java_vm_ext.cc:470] native: #02 pc 000000000044cd1c /system/lib64/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+472)
art/runtime/java_vm_ext.cc:470] native: #03 pc 00000000002ed5e8 /system/lib64/libart.so (ZN3art9JavaVMExt8JniAbortEPKcS2+1128)
art/runtime/java_vm_ext.cc:470] native: #04 pc 00000000002edcd0 /system/lib64/libart.so (_ZN3art9JavaVMExt9JniAbortVEPKcS2_St9__va_list+120)
art/runtime/java_vm_ext.cc:470] native: #05 pc 0000000000101c88 /system/lib64/libart.so (_ZN3art11ScopedCheck6AbortFEPKcz+156)
art/runtime/java_vm_ext.cc:470] native: #06 pc 0000000000101698 /system/lib64/libart.so (_ZN3art11ScopedCheck11CheckThreadEP7_JNIEnv+544)
art/runtime/java_vm_ext.cc:470] native: #07 pc 00000000000ff1d0 /system/lib64/libart.so (_ZN3art11ScopedCheck5CheckERNS_18ScopedObjectAccessEbPKcPNS_12JniValueTypeE+1120)
art/runtime/java_vm_ext.cc:470] native: #08 pc 00000000000f0960 /system/lib64/libart.so (_ZN3art8CheckJNI9FindClassEP7_JNIEnvPKc+620)
art/runtime/java_vm_ext.cc:470] native: #09 pc 0000000000101830 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN13mobileToolkit18getJavaClassByNameEP7_JNIEnvPKc+24)
art/runtime/java_vm_ext.cc:470] native: #10 pc 00000000000bc7b0 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN14dmapLibAndroid21DMapViewPOIItemMarker18notifyOnClickEventEv+36)
art/runtime/java_vm_ext.cc:470] native: #11 pc 00000000000bc88c /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN14dmapLibAndroid34DMapViewPOIItemMarkerEventListener7onClickEPN7mapCore16MapComponentViewE+40)
art/runtime/java_vm_ext.cc:470] native: #12 pc 00000000000dbf28 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore16MapComponentView7onClickEv+60)
art/runtime/java_vm_ext.cc:470] native: #13 pc 00000000000e34d0 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore16BasicImageMarker7onClickEv+12)
art/runtime/java_vm_ext.cc:470] native: #14 pc 00000000000de7f0 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore23MapComponentViewManager10onEndPointERKN13mobileToolkit7Point2DEPNS_12MapViewpointE+176)
art/runtime/java_vm_ext.cc:470] native: #15 pc 00000000000e9074 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore14MapViewManager10onEndPointEPNS_14MapViewUiEventE+300)
art/runtime/java_vm_ext.cc:470] native: #16 pc 00000000000b7f2c /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN9mapEngine18__onUiEventMapViewEP7_JNIEnvP8_jobject+996)
art/runtime/java_vm_ext.cc:470] native: #17 pc 00000000000404ac /data/app/com.creapple.myhelper-2/oat/arm64/base.odex (Java_net_daum_mf_map_n_api_internal_NativeMapGraphicsViewGles_onUiEventMapView__Lnet_daum_mf_map_n_api_NativeMapViewUiEvent_2+152)
art/runtime/java_vm_ext.cc:470] at net.daum.mf.map.n.api.internal.NativeMapGraphicsViewGles.onUiEventMapView(Native method)
art/runtime/java_vm_ext.cc:470] at net.daum.android.map.MapView.onUiEvent(MapView.java:246)
art/runtime/java_vm_ext.cc:470] at net.daum.android.map.MapView.onDrawFrame(MapView.java:191)
art/runtime/java_vm_ext.cc:470] at net.daum.mf.map.api.MapView.onDrawFrame(MapView.java:2356)
art/runtime/java_vm_ext.cc:470] at android.opengl.alt.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1381)
art/runtime/java_vm_ext.cc:470] at android.opengl.alt.GLSurfaceView$GLThread.nativeRun(GLSurfaceView.java:1181)
art/runtime/java_vm_ext.cc:470] at net.daum.mf.map.n.api.NativeThread.run(NativeThread.java:48)
art/runtime/java_vm_ext.cc:470]
A/art: art/runtime/runtime.cc:404] Runtime aborting…
art/runtime/runtime.cc:404] Aborting thread:
art/runtime/runtime.cc:404] “GLThread 1457” prio=7 tid=12 Native
art/runtime/runtime.cc:404] | group="" sCount=0 dsCount=0 obj=0x12d51450 self=0x6fce561c00
art/runtime/runtime.cc:404] | sysTid=4220 nice=-4 cgrp=default sched=0/0 handle=0x6fde13c450
art/runtime/runtime.cc:404] | state=R schedstat=( 0 0 0 ) utm=178 stm=27 core=7 HZ=100
art/runtime/runtime.cc:404] | stack=0x6fde03a000-0x6fde03c000 stackSize=1037KB
art/runtime/runtime.cc:404] | held mutexes= "abort lock"
art/runtime/runtime.cc:404] native: #00 pc 00000000004787ac /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+220)
art/runtime/runtime.cc:404] native: #01 pc 00000000004787a8 /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+216)
art/runtime/runtime.cc:404] native: #02 pc 000000000044cd1c /system/lib64/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+472)
art/runtime/runtime.cc:404] native: #03 pc 000000000043ad84 /system/lib64/libart.so (_ZNK3art10AbortState10DumpThreadERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEPNS_6ThreadE+56)
art/runtime/runtime.cc:404] native: #04 pc 000000000043ac00 /system/lib64/libart.so (_ZNK3art10AbortState4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+668)
art/runtime/runtime.cc:404] native: #05 pc 000000000042e7ec /system/lib64/libart.so (_ZN3art7Runtime5AbortEv+140)
art/runtime/runtime.cc:404] native: #06 pc 00000000000e502c /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+1204)
art/runtime/runtime.cc:404] native: #07 pc 00000000002ed9fc /system/lib64/libart.so (ZN3art9JavaVMExt8JniAbortEPKcS2+2172)
art/runtime/runtime.cc:404] native: #08 pc 00000000002edcd0 /system/lib64/libart.so (_ZN3art9JavaVMExt9JniAbortVEPKcS2_St9__va_list+120)
art/runtime/runtime.cc:404] native: #09 pc 0000000000101c88 /system/lib64/libart.so (_ZN3art11ScopedCheck6AbortFEPKcz+156)
art/runtime/runtime.cc:404] native: #10 pc 0000000000101698 /system/lib64/libart.so (_ZN3art11ScopedCheck11CheckThreadEP7_JNIEnv+544)
art/runtime/runtime.cc:404] native: #11 pc 00000000000ff1d0 /system/lib64/libart.so (_ZN3art11ScopedCheck5CheckERNS_18ScopedObjectAccessEbPKcPNS_12JniValueTypeE+1120)
art/runtime/runtime.cc:404] native: #12 pc 00000000000f0960 /system/lib64/libart.so (_ZN3art8CheckJNI9FindClassEP7_JNIEnvPKc+620)
art/runtime/runtime.cc:404] native: #13 pc 0000000000101830 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN13mobileToolkit18getJavaClassByNameEP7_JNIEnvPKc+24)
art/runtime/runtime.cc:404] native: #14 pc 00000000000bc7b0 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN14dmapLibAndroid21DMapViewPOIItemMarker18notifyOnClickEventEv+36)
art/runtime/runtime.cc:404] native: #15 pc 00000000000bc88c /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN14dmapLibAndroid34DMapViewPOIItemMarkerEventListener7onClickEPN7mapCore16MapComponentViewE+40)
art/runtime/runtime.cc:404] native: #16 pc 00000000000dbf28 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore16MapComponentView7onClickEv+60)
art/runtime/runtime.cc:404] native: #17 pc 00000000000e34d0 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore16BasicImageMarker7onClickEv+12)
art/runtime/runtime.cc:404] native: #18 pc 00000000000de7f0 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore23MapComponentViewManager10onEndPointERKN13mobileToolkit7Point2DEPNS_12MapViewpointE+176)
art/runtime/runtime.cc:404] native: #19 pc 00000000000e9074 /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore14MapViewManager10onEndPointEPNS_14MapViewUiEventE+300)
art/runtime/runtime.cc:404] native: #20 pc 00000000000b7f2c /data/app/com.creapple.myhelper-2/lib/arm64/libDaumMapEngineApi.so (_ZN9mapEngine18__onUiEventMapViewEP7_JNIEnvP8_jobject+996)
art/runtime/runtime.cc:404] native: #21 pc 00000000000404ac /data/app/com.creapple.myhelper-2/oat/arm64/base.odex (???)
art/runtime/runtime.cc:404] at net.daum.mf.map.n.api.internal.NativeMapGraphicsViewGles.onUiEventMapView(Native method)
art/runtime/runtime.cc:404] at net.daum.android.map.MapView.onUiEvent(MapView.java:246)
art/runtime/runtime.cc:404] at net.daum.android.map.MapView.onDrawFrame(MapView.java:191)
art/runtime/runtime.cc:404] at net.daum.mf.map.api.MapView.onDrawFrame(MapView.java:2356)
art/runtime/runtime.cc:404] at android.opengl.alt.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1381)
art/runtime/runtime.cc:404] at android.opengl.alt.GLSurfaceView$GLThread.nativeRun(GLSurfaceView.java:1181)
art/runtime/runtime.cc:404] at net.daum.mf.map.n.api.NativeThread.run(NativeThread.java:48)

저도 같은 문제가 있었는데
일단 layout 값을 wrap content 가 아닌 고정된 값으로 주고,
가이드에는 아래 메서드의 반환값이 null을 리턴한다고 되어있는데
null이 아닌 inflate 한 뷰로 넘겨주니 동작 하는군요.

override fun getPressedCalloutBalloon(poiItem: MapPOIItem): View {
return calloutBalloon
}

wrap content 줘도 되네요 ㅎㅎ; 제가 실수한 듯.

1개의 좋아요