내 안드로이드 응용 프로그램을 사용하고 있습니다.Google지도에 오류가 발생했습니다. Google지도에 오류가 있습니다.
{
"placemarks":[
{
"address":"Via di Santa Maria a Marignolle, 15, 50124 Firenze",
"coordinates":[
11.23348,
43.75855,
0
],
"engineType":"CE",
"exterior":"GOOD",
"fuel":100,
"interior":"GOOD",
"name":"049/EV284TP",
"smartPhoneRequired":false,
"vin":"WME4513341K774636"
}
]
}
내가 개체에 대해 "장소 표시"모든 otehr 항목이 뽀조 모델을 쓰고 있습니다 이 내가 PIN이 필요 JSON 개체의 구조입니다. 그리고 난 JSON 데이터를 가져 오지 및지도에 넣어이 코드를 작성할 수 있습니다
private void getPlacemark(){
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://www.car2go.com/api/v2.1/vehicles?loc=roma&oauth_consumer_key=roadzapp&format=json")
.addConverterFactory(GsonConverterFactory.create())
.build();
APIService service = retrofit.create(APIService.class);
Call<ResponsePlacemarks> call = service.getPlacemark();
call.enqueue(new Callback<ResponsePlacemarks>() {
@Override
public void onResponse(Response<ResponsePlacemarks> response, Retrofit retrofit) {
Log.d("response: ", String.valueOf(response.body()));
try {
mMap.clear();
// This loop will go through all the results and add marker on each location.
for (int i = 0; i < response.body().getPlacemarks().size(); i++) {
Double lat = response.body().getPlacemarks().get(i).getCoordinates().get(1);
Double lng = response.body().getPlacemarks().get(i).getCoordinates().get(0);
String placeName = response.body().getPlacemarks().get(i).getAddress();
MarkerOptions markerOptions = new MarkerOptions();
LatLng latLng = new LatLng(lat, lng);
// Position of Marker on Map
markerOptions.position(latLng);
// Adding Title to the Marker
markerOptions.title(placeName);
// Adding Marker to the Camera.
Marker m = mMap.addMarker(markerOptions);
// Adding colour to the marker
markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
// move map camera
mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
mMap.animateCamera(CameraUpdateFactory.zoomTo(11));
}
} catch (Exception e) {
Log.d("onResponse", "There is an error");
e.printStackTrace();
}
}
@Override
public void onFailure(Throwable t) {
}
});
}
하지만 지금은 참고 부하 인 JSON을 응용 프로그램을 실행하고 난 루프의 첫 번째 줄에 오류가 있습니다
를java.lang.NullPointerException이 :
하이 가지고 널 객체 참조에 ')를 java.util.List android.mobility.com.mobiity.model.ResponsePlacemarks.getPlacemarks ('가상 메소드를 호출 시도 오류를 발견했습니다. APIService에서 이런 식으로 @GET 메서드를 설정했습니다 : @GET (".") 왜냐하면 저는 URL로 BaseURL을 사용하기 때문입니다. 그래서 @GET 모든 URL을 설정하면 메서드가 잘 작동합니다. 어떻게 URL을 @GET에 BaseULRalso로만 사용할 수 있습니까?
위의 의견에 게시해야합니다. –
@ cricket_007 당신은 stackoverflow 경찰입니까? 내가 염려하는 한, 나는 그 문제의 가장 큰 원인에 대한 질문에 대답했다. 응답의 두 번째 부분이 정확히 내가 대답 한 (그리고 다시 NPE의 원인 일 가능성이 높기 때문에) 의견을 사용하지 않는 이유는 무엇입니까 –
답변에서 질문 한 것을 고려해 볼 때, 좋은 대답 ...반면에 내 대답은'response.body()'가 한 번만 호출되도록 허용하는 OkHttp의 다른 문제를 다룬다. –