Gecorder IndexOutBoundException

  • Hallo Leute,


    in meiner App kann der User durch Adresse oder Stadtangabe seine Position bestimmen lassen.


    Das Problem dabei ist jetzt, das der Geocoder nur in den seltensten fällen auch mal funktioniert.


    Erstmal der Code:


    Die Exception:






    Und die Zeile 139:


    Java
    map.put("data",adress.getLocationFromAddress(Profil.this,editTextAdress.getText().toString()));


    Habt ihr eine Idee was los is?

  • Hallo, was ist adress von
    map.put("data",adress.getLocationFromAddress(Profil.this,editTextAdress.getText().toString()));
    Zeige mal die Initialisierung dies Objekt.


    Put erwartet ein value Objekt .
    put(K key, V value)


    Ansonsten schließe ich mich meinen vorredner an.


    Lg Jörg

  • Komisch das die Exception verschwunden ist.


    Naja hab jetzt neu versucht.


    Das gleiche Ergebnis:




    XML



    Exception:
    java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
    01-22 18:03:51.037 16187-16187/de.simplylabs.locationtest W/System.err: at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
    01-22 18:03:51.037 16187-16187/de.simplylabs.locationtest W/System.err: at java.util.ArrayList.get(ArrayList.java:308)
    01-22 18:03:51.037 16187-16187/de.simplylabs.locationtest W/System.err: at de.simplylabs.locationtest.MainActivity.onCreate(MainActivity.java:45)
    01-22 18:03:51.037 16187-16187/de.simplylabs.locationtest W/System.err: at android.app.Activity.performCreate(Activity.java:6237)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at android.app.ActivityThread.-wrap11(ActivityThread.java)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at android.os.Looper.loop(Looper.java:148)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5417)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at java.lang.reflect.Method.invoke(Native Method)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    01-22 18:03:51.038 16187-16187/de.simplylabs.locationtest W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)




    at de.simplylabs.locationtest.MainActivity.onCreate(MainActivity.java:45) <- Die Linie
    |
    |__> String address = addresses.get(0).getAddressLine(0);
    Also ich muss sagen, ich bin kurz davor ... es geht einfach nicht.Brauch ich ne json datei von google?Brauch ein API Key oder sowas?Gefunden habe ich nämlich nichts....

  • @jogimuc


    Das bringt leider auch nichts. Ich verstehe das nicht.


    (hab vergessen das ich schon einen Account habe, habe schon angefragt um meinen Lalox3 account zu löschen) nicht wundern ^^


  • Hast du die neu Art der premission eingebaut?
    Kommt in der app die Abfrage nach der Berechtigung


    addresses = geocoder.getFromLocation(lat,lng,1);
    String address = addresses.get(0).getAddressLine(0);


    Prüfe ob addresses nicht lehr ist. Du erstellst die Variable Liste und willst gleich was raus holen. IndexOutOfBoundsException: Invalid index 0, size is 0.
    Heißt das eine Liste Feld bei index 0 lehr ist.


    Wenn in geocoder.getFromLocation(lat,lng,1) keine Daten sind spricht es wieder für die Premission.


    Was mir auch gerade auffällt ist das du alles in der oncreat machst. Zu dem Zeitpunkt läuft die app noch gar nicht richtig .
    Führe den try teil mal in onresume oder in einen clicklistner aus.


    Zeige mal wie du das mit den premission gelöst hast.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!