2016-08-02 14 views
0

hi im derzeit tun Schulprojekt und ich weiß nicht, wo ich Buggy bekomme ich glaube nicht, dass mein Code auch falsch ist, bitte helfen Sie mir das ist meine Codes das ist mein ganzes Projekt die Sache, die ich benutze Führung drive.google.com/open?id=0B0MY4kATEXqlMDQyZWprRDhmeUUCameraUpdateFactory.newLatLngZoom gibt null zurück

private void sendRequest() { 
    String origin = etOrigin.getText().toString(); 
    String destination = etDestination.getText().toString(); 
    String[] destinationArray = {"v.mapa","Vasra","Culiat"}; 

    if (origin.isEmpty()) { 
     Toast.makeText(this, "Please enter origin address!", Toast.LENGTH_SHORT).show(); 
     return; 
    } 
    if (destination.isEmpty()) { 
     Toast.makeText(this, "Please enter destination address!", Toast.LENGTH_SHORT).show(); 
     return; 
    } 

     try { 
      new DirectionFinder(this, origin, destinationArray[2]).execute(); 
      } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
        } 
    try { 
     new DirectionFinder(this, destinationArray[2], destinationArray[1]).execute(); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 

@Override 
public void onDirectionFinderSuccess(List<Route> routes) { 
    progressDialog.dismiss(); 
    progressDialog.dismiss(); 
    polylinePaths = new ArrayList<>(); 
    originMarkers = new ArrayList<>(); 
    destinationMarkers = new ArrayList<>(); 
for (Route route : routes) { 
    Toast.makeText(
      MainActivity.this, 
      route.startLocation.toString(), 
      Toast.LENGTH_LONG).show(); 

// Diese nächsten Zeilen gibt ID LIKE Sring, ich weiß nicht, ob Camera wissen, welche Art von Datentyp Route

  googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(route.startLocation, 16)); 
    //((TextView) findViewById(R.id.textView2)).setText(route.duration.text); 
    //((TextView) findViewById(R.id.textView3)).setText(route.distance.text); 

    originMarkers.add(googleMap.addMarker(new MarkerOptions() 
      .icon(BitmapDescriptorFactory.fromResource(R.drawable.start_blue)) 
      .title(route.startAddress) 
      .position(route.startLocation))); 
    destinationMarkers.add(googleMap.addMarker(new MarkerOptions() 
      .icon(BitmapDescriptorFactory.fromResource(R.drawable.end_green)) 
      .title(route.endAddress) 
      .position(route.endLocation))); 

    PolylineOptions polylineOptions = new PolylineOptions(). 
      geodesic(true). 
      color(Color.BLUE). 
      width(10); 

    for (int i = 0; i < route.points.size(); i++) 
     polylineOptions.add(route.points.get(i)); 

    polylinePaths.add(googleMap.addPolyline(polylineOptions)); 

    routes.clear(); 
} 
} 
zu werfen versucht

DANN ich Holen Sie sich diese ERROR

Process: com.hci_thesis.thesis_dolph, PID: 4479 
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.maps.GoogleMap.moveCamera(com.google.android.gms.maps.CameraUpdate)' on a null object reference 
at com.hci_thesis.thesis_dolph.MainActivity.onDirectionFinderSuccess(MainActivity.java:269) 
at mods.DirectionFinder.parseJSon(DirectionFinder.java:129) 
at mods.DirectionFinder.access$100(DirectionFinder.java:25) 
at mods.DirectionFinder$DownloadRawData.onPostExecute(DirectionFinder.java:87) 
at mods.DirectionFinder$DownloadRawData.onPostExecute(DirectionFinder.java:58) 
at android.os.AsyncTask.finish(AsyncTask.java:632) 
at android.os.AsyncTask.access$600(AsyncTask.java:177) 
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5221) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

Antwort

0

NullPointerException wird ausgelöst, wenn eine Anwendung in einem Fall zu verwenden null versucht, wo ein Objekt erforderlich ist. Dazu gehören:

  • Aufrufen der Instanzmethode eines Nullobjekts.
  • Zugreifen auf oder Ändern des Felds eines Nullobjekts.
  • Nehmen Sie die Länge von Null, als ob es ein Array wäre.
  • Zugreifen auf oder Ändern der Slots von Null, als wäre es ein Array.
  • Null werfen, als wäre es ein Wert für Throwable.

So für Ihren Fall erhalten Sie einen Fehler in diesem Teil Ihres Codes CameraUpdateFactory.newLatLngZoom. Sie können in dieser [Dokumentation] (https://developers.google.com/android/reference/com/google/android/gms/maps/CameraUpdateFactory#newLatLngZoom(com.google.android.gms.maps.model.LatLng, float)) überprüfen, wie Sie die Werte in dieser Methode richtig einstellen.

Für weitere Informationen, überprüfen Sie diese page wie Sie CameraUpdateFactory richtig verwenden.

Aktivieren Sie auch diese part der Google Maps Android API, um den Beispielcode für die Verwendung dieser Methode zu überprüfen.

+0

T_T aber nichts falsch mit meinem Code Sir –