首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android SupportMapFragment异常错误

Android SupportMapFragment异常错误
EN

Stack Overflow用户
提问于 2012-12-07 13:41:38
回答 4查看 7.3K关注 0票数 4

我正在尝试使用新的Google Lib和embbed,地图片段如下所示

PlaceMapsFragment.java

代码语言:javascript
复制
public class PlaceMapsFragment extends SupportMapFragment {
    private GoogleMap mMap;
    private LatLng mPosFija;

    public PlaceMapsFragment() {
        super();
    }

    public static PlaceMapsFragment newInstance(LatLng posicion) {
        PlaceMapsFragment frag = new PlaceMapsFragment();
        frag.mPosFija = posicion;
        return frag;
    }

    @Override
    public GoogleMap getMap() {
        // TODO Auto-generated method stub
        return super.getMap();
    }

    @Override
    public void onCreate(Bundle arg0) {
        // TODO Auto-generated method stub
        super.onCreate(arg0);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = super.onCreateView(inflater, container, savedInstanceState);
        //initMap();
        return view;
    }

    private void initMap() {
        UiSettings settings = getMap().getUiSettings();
        settings.setAllGesturesEnabled(false);
        settings.setMyLocationButtonEnabled(false);

        getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(mPosFija, 16));
        getMap().addMarker(
                new MarkerOptions().position(mPosFija)
                        .icon(BitmapDescriptorFactory
                                .fromResource(R.drawable.marker)));
    }

}

误差

代码语言:javascript
复制
12-10 01:44:54.416: E/AndroidRuntime(32716): FATAL EXCEPTION: main
12-10 01:44:54.416: E/AndroidRuntime(32716): java.lang.NullPointerException
12-10 01:44:54.416: E/AndroidRuntime(32716):    at maps.ar.b.a(Unknown Source)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at maps.y.h.a(Unknown Source)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at maps.y.au.a(Unknown Source)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at maps.y.ae.moveCamera(Unknown Source)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at com.google.android.gms.maps.internal.IGoogleMapDelegate$Stub.onTransact(IGoogleMapDelegate.java:83)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.os.Binder.transact(Binder.java:297)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a.moveCamera(Unknown Source)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at com.google.android.gms.maps.GoogleMap.moveCamera(Unknown Source)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at com.m7.nomad.PlaceMapsFragment.initMap(PlaceMapsFragment.java:55)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at com.m7.nomad.PlaceMapsFragment.onCreateView(PlaceMapsFragment.java:46)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at com.m7.nomad.PlaceActivity$TabManager.onTabChanged(PlaceActivity.java:153)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.widget.TabHost.invokeOnTabChangeListener(TabHost.java:379)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.widget.TabHost.setCurrentTab(TabHost.java:364)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:150)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:540)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.view.View.performClick(View.java:3591)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.view.View$PerformClick.run(View.java:14263)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.os.Handler.handleCallback(Handler.java:605)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.os.Handler.dispatchMessage(Handler.java:92)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.os.Looper.loop(Looper.java:137)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at android.app.ActivityThread.main(ActivityThread.java:4507)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at java.lang.reflect.Method.invokeNative(Native Method)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at java.lang.reflect.Method.invoke(Method.java:511)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
12-10 01:44:54.416: E/AndroidRuntime(32716):    at dalvik.system.NativeStart.main(Native Method)

报表文件

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.m7.nomad"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

    <permission
        android:name="com.example.newmapview.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.example.newmapview.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Sherlock" >
        <activity
            android:name="com.m7.nomad.SplashActivity"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="com.m7.nomad.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.m7.nomad.PlaceActivity"
            android:label="@string/app_name" >
        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="XXXXXXXXXXX" />
    </application>

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

</manifest>

我有一个SherlockFragmentActivity,它有一个TabHost,上面有两个片段。我试着把地图呈现在其中一个Tab片段里

编辑

我已经有地图要显示,但现在我不能参考地图和改变地图为混合。基本上,我需要引用Map,而不需要获得Null错误。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-07 19:25:53

onCreateView()中,您必须调用它的父级。检查我的解决方案在https://stackoverflow.com/a/13734470/835787更近。映射是在onCreateView()方法MapFragment中初始化的,如果不调用它,映射将为null。

票数 4
EN

Stack Overflow用户

发布于 2012-12-07 19:52:31

  1. 应该在super.onCreate()中调用super.onCreate(SavedInstanceState),而不是在onCreateView()中调用
  2. 如果要重写onCreateView(),应该如下所示: @重写公共视图onCreateView(LayoutInflater inflater,ViewGroup容器,Bundle savedInstanceState) { View =super.onCreateView(充气器,容器,savedInstanceState);//执行所需的任何其他初始化,但请注意,MapView已经存在于v setUpMapIfNeeded(V)中;返回v;}
票数 3
EN

Stack Overflow用户

发布于 2012-12-07 14:48:59

我不知道这是否有帮助,但您应该在这里设置您的包:

代码语言:javascript
复制
    <permission
    android:name="com.example.newmapview.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.example.newmapview.permission.MAPS_RECEIVE" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13764266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档