0

안드로이드 맵 v2로 맵 조각을 만들었으며 스마트 폰에서 제대로 작동합니다. 이제는 타블렛을 꽂았고지도 활동을 시작하려고 할 때 NPE를 얻습니다. 나는 그 순간 전혀 우둔하지 않다. 오류의 출처가 무엇인지 알지도 못합니다. 누구든지 도와 줄 수 있습니까? 들으지도 활동의NPE on SupportMapFragment

에서 OnCreate :

FragmentManager myFragmentManager = getSupportFragmentManager(); 
    SupportMapFragment mySupportMapFragment = (SupportMapFragment)myFragmentManager.findFragmentById(R.id.customer_map_fragment); 
    mMap = mySupportMapFragment.getMap(); 
    mMap.setMyLocationEnabled(true);     <-- line 103 with the NPE 
    mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 

customer_map_activity.xml :

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
<fragment 
     android:id="@+id/customer_map_fragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.google.android.gms.maps.SupportMapFragment"/> 
</FrameLayout> 

로그 캣 :

08-12 11:08:27.449: E/AndroidRuntime(3562): FATAL EXCEPTION: main 
08-12 11:08:27.449: E/AndroidRuntime(3562): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cocus.salesapp/com.cocus.salesapp.TestCustomerMapActivity}: java.lang.NullPointerException 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2185) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at android.app.ActivityThread.access$600(ActivityThread.java:142) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at android.os.Looper.loop(Looper.java:137) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at android.app.ActivityThread.main(ActivityThread.java:4931) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at java.lang.reflect.Method.invoke(Method.java:511) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558) 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at dalvik.system.NativeStart.main(Native Method) 
08-12 11:08:27.449: E/AndroidRuntime(3562): Caused by: java.lang.NullPointerException 
08-12 11:08:27.449: E/AndroidRuntime(3562):  at com.fghj.salesapp.TestCustomerMapActivity.onCreate(TestCustomerMapActivity.java:103) 

편집 : 휴대 전화에서 세로로만 실행 중입니다. 태블릿에서는 풍경을 사용해야합니다.

답변

1

GooglePlayServicesUtil.isGooglePlayServicesAvailable으로 전화하여 이유를 알 수 있습니다.

ConnectionResult constants과 비교할 수있는 int 값이 반환됩니다.

+0

내 onResume에서 확인하고 있습니다. 내가 그것을 onCreate로 옮겨야 만하는 것처럼 보인다!? – bofredo

+1

@bofredo'MapFragment'를 포함하고있는이'Activity'를 시작하는'Activity'에서이 체크를하고 대신 시작하는 대신 대화 상자를 보여 주면, 그 맵은 볼 수 없습니다. 코드에 이러한 위치가 있는지에 따라 다르지만 예 : 'GoogleMap' 참조를 얻고 GoogleMap 참조가 null 일 때 조건을 설정하기 전에 수행하십시오. –

+0

은 홀수입니다. 타블렛이 "2"를 반환하는 동안 내 전화는 "0"을 반환합니다. – bofredo