我的片段类出错,指出
java.lang.NullPointerException:尝试在片段处的空对象引用上调用虚拟方法'boolean com.google.android.gms.common.api.GoogleApiClient.isConnected(('。家片段.on简历
这是我在HomeFragment上的部分代码
private GoogleApiClient mGoogleApiClient;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mCurrentLocation = savedInstanceState.getParcelable(KEY_LOCATION);
mCameraPosition =
savedInstanceState.getParcelable(KEY_CAMERA_POSITION);
} buildGoogleApiClient();
}
@Override
public void onResume() {
super.onResume();
if (mGoogleApiClient.isConnected()) {
getDeviceLocation();
}
updateMarkers();
}
private synchronized void buildGoogleApiClient() {
GoogleApiClient.Builder builder = new GoogleApiClient.Builder(getActivity());
mGoogleApiClient = builder.build();
//builder.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */);
builder.addConnectionCallbacks(this);
builder.addApi(LocationServices.API);
builder.addApi(Places.GEO_DATA_API);
builder.addApi(Places.PLACE_DETECTION_API);
builder.build();
createLocationRequest();
}
我也实现了
- OnMapReadyCallback
- GoogleApiClient.ConnectionCallbacks
- GoogleApiClient.OnConnectionFailedListener
- 位置侦听器
- 方向查找器侦听器
有人可以帮助我吗?
您需要
保留对正在构建GoogleApiClient
实例的引用。所以它应该是:
private void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addConnectionCallbacks(this)
.addApi(LocationServices.API)
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.build();
createLocationRequest();
}