0

내 안드로이드 응용 프로그램에서 나는 조각에 Google지도가 있지만 다음 줄에 널 포인터 예외가 발생합니다. 나는 많은 조각에 대한 흐름 링크에 대한 지원 조각 null 포인터 예외에 대한 언급했지만 내 문제를 해결할 수 없었다. 안드로이드 구글 맵 v2 - 조각 null 포이더 예외 지원

myMAPF.getMap(); // Null pointer error occurred line.

이 조각 구현 내부지도의 내 전체 코드

.

import android.os.Bundle; 
import android.support.v4.app.FragmentManager; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Toast; 

import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 

public class MapFragment2 extends SupportMapFragment { 

    private GoogleMap googleMap; 

    // latitude and longitude 
    double latitude = 17.385044; 
    double longitude = 78.486671; 

    static final LatLng HAMBURG = new LatLng(53.558, 9.927); 
    static final LatLng KIEL = new LatLng(53.551, 9.993); 

    private FragmentManager myFM; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     super.onCreateView(inflater, container, savedInstanceState); 
     View view = inflater.inflate(R.layout.location_fragment, container, 
       false); 
     myFM = getActivity().getSupportFragmentManager(); 

     if (googleMap == null) { 
      final SupportMapFragment myMAPF = (SupportMapFragment) myFM 
        .findFragmentById(R.id.location_map); 
      if (myMAPF == null) { 
       Log.e("myMAPF", "null"); 
      } else { 
       Log.e("myMAPF", "NOT null"); 
      } 
      myMAPF.getMap(); 

      if (googleMap == null) { 
       Toast.makeText(getActivity().getApplicationContext(), 
         "Sorry! unable to create maps", Toast.LENGTH_SHORT) 
         .show(); 
      } 
     } 

     return view; 
    } 
} 

XML 레이아웃 :

import android.support.v4.app.FragmentActivity; 
    import android.support.v4.app.FragmentManager; 
    import android.support.v4.app.FragmentTabHost; 
    ....... 

    public class FragActivity extends FragmentActivity implements 
      OnTabChangeListener { 
     private static FragmentTabHost mTabHost; 
     // This activity has 3 tabs one of the tab has map 
// ............... 
    } 

Posted full Logcat: 

java.lang.NullPointerException 
at in.murali.pupdemo.MapFragment2.onCreateView(MapFragment2.java:44) 
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947) 
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126) 
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739) 
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489) 
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486) 
at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:283) 
at android.view.View.dispatchAttachedToWindow(View.java:13418) 
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2653) 
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2660) 
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2660) 
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2660) 
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2660) 
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1476) 
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1239) 
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6486) 
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803) 
at android.view.Choreographer.doCallbacks(Choreographer.java:603) 
at android.view.Choreographer.doFrame(Choreographer.java:573) 
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789) 
at android.os.Handler.handleCallback(Handler.java:733) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:157) 
at android.app.ActivityThread.main(ActivityThread.java:5356) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) 
at dalvik.system.NativeStart.main(Native Method) 

내 응용 프로그램이 libs와 폴더에 android-support-v4.jar을 가지고 있으며, 내 응용 프로그램으로 참조 : (location_fragment.xml)로 정의

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:padding="10dp" > 

    <Button 
     android:id="@+id/location_btn" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="map button" /> 

    <fragment 
     android:id="@+id/location_map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="10dp" 
     class="com.google.android.gms.maps.SupportMapFragment" /> 

</LinearLayout> 

내 FragmentActivity 클래스는 다음과 같습니다 아래 그림과 같습니다.

enter image description here

가 나는 매니페스트 XML에 필요한 모든 권한과 키를 주었다.

+1

이 코드 : http://stackoverflow.com/questions/25517170/adding-markers-in-background-while-looping-through-arraylist/ 25517475 # 25517475 아마 그것은 당신에게 유용합니다 – cYrixmorten

+0

나는 myFM.findFragmentById (R.id.location_map); view.findFragmentById (R.id.location_map) 여야합니다. – Muthu

+0

@Muthu, I는이 광고를 변경할 경우에 "\t \t \t 최종 SupportMapFragment myMAPF = (SupportMapFragment)보기 \t \t \t \t \t .findViewById (R.id.location_map);" "View에서 SupportMapFragment로 변환 할 수 없습니다"라는 메시지가 나타납니다. 내가 어떻게 바꿀 수 있니? –

답변

0

체크 아웃 당신은 내 SupportMap 구현을 여기에서 볼 수 있습니다

import android.os.Bundle; 
import android.support.v4.app.FragmentManager; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Toast; 

import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 

public class MapFragment2 extends SupportMapFragment { 

    private GoogleMap googleMap; 

    // latitude and longitude 
    double latitude = 17.385044; 
    double longitude = 78.486671; 

    static final LatLng HAMBURG = new LatLng(53.558, 9.927); 
    static final LatLng KIEL = new LatLng(53.551, 9.993); 

    private FragmentManager myFM; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     super.onCreateView(inflater, container, savedInstanceState); 
     View view = inflater.inflate(R.layout.location_fragment, container, 
       false); 
     myFM = getActivity().getSupportFragmentManager(); 

     if (googleMap == null) { 

     final MapView myMAPF = (MapView) view.findViewByIdR.id.location_map);  

     myMAPF.onCreate(savedInstanceState); 
     myMAPF.onResume(); 
      if (myMAPF == null) { 
       Log.e("myMAPF", "null"); 
      } else { 
       Log.e("myMAPF", "NOT null"); 
      } 

      googleMap=myMAPF.getMap(); 

      if (googleMap == null) { 
       Toast.makeText(getActivity().getApplicationContext(), 
         "Sorry! unable to create maps", Toast.LENGTH_SHORT) 
         .show(); 
      } 
     } 

     return view; 
    } 
} 
+0

@ M.A.Murali 내 코드를 확인 했습니까? – Muthu

관련 문제