Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NullPointerException-Android谷歌地图街景_Java_Android_Google Maps_Nullpointerexception_Google Street View - Fatal编程技术网

Java NullPointerException-Android谷歌地图街景

Java NullPointerException-Android谷歌地图街景,java,android,google-maps,nullpointerexception,google-street-view,Java,Android,Google Maps,Nullpointerexception,Google Street View,我试图在片段中显示街景 public class StreetDisplay extends Fragment implements OnStreetViewPanoramaReadyCallback{ SupportStreetViewPanoramaFragment streetFrag; static final LatLng PosOne = new LatLng(43.771925, -79.512460); @Override public View onCreateView(

我试图在片段中显示街景

public class StreetDisplay extends Fragment implements OnStreetViewPanoramaReadyCallback{

SupportStreetViewPanoramaFragment streetFrag;

static final LatLng PosOne = new LatLng(43.771925, -79.512460);

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.street_display, container, false);
    initialize();
    return v;

}

private void initialize() {

    streetFrag =
            (SupportStreetViewPanoramaFragment) getFragmentManager()
                    .findFragmentById(R.id.street);
    streetFrag.getStreetViewPanoramaAsync(this);
}

//this method is needed for using a ViewPager swiping feature
public static StreetDisplay newInstance(){
    StreetDisplay sd = new StreetDisplay();
    return sd;
}

@Override
public void onStreetViewPanoramaReady(StreetViewPanorama panorama) {
    panorama.setPosition(PosOne);
}
}
这是我运行应用程序时收到的错误消息

Process: com.example.nikhilbhaskar.mapplayground, PID: 22406
java.lang.NullPointerException
        at com.example.nikhilbhaskar.mapplayground.StreetDisplay.initialize(StreetDisplay.java:43)
        at com.example.nikhilbhaskar.mapplayground.StreetDisplay.onCreateView(StreetDisplay.java:33)
第33行是

initialize();
第43行是

streetFrag.getStreetViewPanoramaAsync(this);  
我不确定问题出在哪里-你能帮忙吗

streetFrag =
            (SupportStreetViewPanoramaFragment) getFragmentManager()
                    .findFragmentById(R.id.street);
此语句可能不是为StreetFrag创建对象


检查is streetFrag是否为空。

我尝试了官方的文档,它工作得很好

我的示例代码:

街景活动

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

import com.google.android.gms.maps.OnStreetViewPanoramaReadyCallback;
import com.google.android.gms.maps.StreetViewPanorama;
import com.google.android.gms.maps.StreetViewPanoramaFragment;
import com.google.android.gms.maps.model.LatLng;


public class StreetViewActivity extends FragmentActivity
        implements OnStreetViewPanoramaReadyCallback {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_street_view);
        StreetViewPanoramaFragment streetViewPanoramaFragment =
                (StreetViewPanoramaFragment) getFragmentManager()
                        .findFragmentById(R.id.streetviewpanorama);
        streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);
    }


    @Override
    public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
        streetViewPanorama.setPosition(new LatLng(-33.87365, 151.20689));
    }
}
对于
活动\u street\u view.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context="com.bjiang.map_ex.StreetViewActivity">

    <fragment
        android:name="com.google.android.gms.maps.StreetViewPanoramaFragment"
        android:id="@+id/streetviewpanorama"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

在片段中使用
getChildFragmentManager()

streetFrag = (SupportStreetViewPanoramaFragment) getChildFragmentManager()
                                                    .findFragmentById(R.id.street);

我刚才查过了。你是对的。streetFrag为null,该语句不创建对象。知道为什么/如何修复它吗?这可能会有所帮助。看看这个。你使用
片段的支持库吗?你的意思是?导入android.support.v4.app.Fragment;是的,这是我从尝试更改为:
getFragmentManager()
扩展的片段类:
getSupportFragmentManager()
,但是getSupportFragmentManager()是FragmentActivity类的一个方法。我不能扩展这个类;我需要片段类,因为我在ViewPager中使用这些片段制作屏幕滑动动画,您可以使用:
getActivity().getSupportFragmentManager()碧江,我也试过了,它对我非常有效。但我的例子略有不同。我的类扩展了Fragment not FragmentActivity,因为此片段在ViewPager中(与其他两个片段一起)用于ViewPager中的水平滑动/屏幕幻灯片功能。这里的例子:我尝试了一个小时,但没有运气,我发布了我在编辑中尝试过的最好的代码,也是我能找到的最好的代码…谢谢碧江,我将查看该链接-我感谢你的帮助:)
streetFrag = (SupportStreetViewPanoramaFragment) getChildFragmentManager()
                                                    .findFragmentById(R.id.street);