Google Maps API v2

  • Hoi,


    ich les mich grad bissl in Google Maps ein. Hab das google-play-services Library-Projekt importiert, meinem Layout ein Fragment für die Google Maps Ansicht hinzugefügt, ein keystroke file erzeugt und mir einen API Key erzeugt, den ich dem AndroidManifest hinzugefügt habe.


    Weiß jemand, wie ich in Eclipse mein Projekt via Run/Debug > Android Application bequem starten kann und mein keystroke file mit eingebunden wird, damit Google Maps dann nicht behauptet

    Zitat

    06-17 10:37:32.543: E/Google Maps Android API(17896): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).


    Hab das jetzt so interpretiert, dass er beim generieren des .apk Files mein keystroke-file nicht mit nimmt und deshalb die Authentifizierung nicht passt. Bin ich da auf dem Holzweg oder liegt das schon daran? Hat jemand einen Tipp bzw. wie debuggt ihr bequem eure Apps?



    Gruß,
    matze


    EDIT:
    Glaub hab noch wo anders nen Wurm drin, ignoriert das hier mal bitte ^^

  • Eventuell fehlt dir noch eine Permission zum Empfangen der Maps.


    Ich glaube, das war der hier:
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />


    Aber mit dem Emulator wirst du so oder so Probleme bekommen, da die Dinger nur funktionieren, wenn die aktuellen Google Play Services auch auf dem Gerät installiert sind – und auf dem Emulator sind sie es mangels eines Stores eben nicht. ;)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • ich hänge mich trotzdem mal kurz dran.
    Wenn ich das jetztrichtig verstanden habe, willst du mit dem endgültigen Key debuggen.


    Das funktioniert m.E. nicht.
    Zum Debug musst du den endgültigen Key durch den Debugkey ersetzen.


    Schlag mich, wenn ich nicht Recht habe ;)


    gruss KHH

  • Hmm,


    also ich geh mal alles Schritt für Schritt nochmal durch:


    1. Eclipse Rechtsklick Import > Existing Android Code Into Workspace
    2. <android.sdk.path>/extras/google/google_play_services/libproject > Öffnen > Finish
    3. Neues Android Projekt erzeugen
    3. Rechtsklick drauf > Properties > Android > Library Add ... > google-play-services_lib
    4. Manifest ergänzen


    5. SHA1 holen

    Code
    cd && keytool -list -v -alias androiddebugkey -keystore .android/debug.keystore -storepass android -keypass android


    6. https://code.google.com/apis/console an browsen > Services > Google Maps Android API v2 auf ON
    7. API Access > Create new Android Key > SHA1;my.package.name
    8. API Key kopieren und ins AndroidManifest eintragen (innerhalb von <application></application>

    HTML
    <meta-data
                android:name="com.google.android.maps.v2.API_KEY"
                android:value="my_api_key" />


    9. fragment meinem Layout hinzufügen

    HTML
    <fragment
            android:id="@+id/map"
            android:name="com.google.android.gms.maps.MapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/hello_world" />


    10. MainActivity anpassen


    11. LogCat Output
    Füge ich später hinzu, der knecht erkennt grad kein Handy mehr -.- adb kill-server && adb start-server hilft nix ... super *seufz*



    Gruß,
    matze


    EDIT:
    Ohman, jetzt gehts ... was zur Hölle


    (PS: die letzten 2 Edits wegen den switch-cases ... die waren echt unnötig)

  • Hab noch ne kleine Frage:


    Die Klassen MapFragment, Fragment und FragmentManager sind ja erst ab SDK Version 11 verfügbar, im android-support-v4.jar sind jedoch entsprechende Support-Packages vorhanden.


    Ist es jetzt eigentlich sonderlich sinnvoll, das Support-Package einzubinden um somit das minSDK um 1-2 Nummern nach unten drücken zu können? Bringt das Performance-Nachteile? Verringerter Funktionsumfang?


    Was ist da eigentlich Best Practice, ich mein als Entwickler selbst will man, dass möglichst viele User die App verwenden können. Auf der anderen Seite updaten User vll mal eher (falls möglich), wenn sie merken, dass quasi keine App mehr Unterstützung für ihre niedrige Version bietet. Das hat dann wieder den Vorteil, dass ich nicht den Umweg code sondern den direkten Weg gehen kann ...



    Gruß,
    matze

  • Da API Level 10 noch eine Verbreitung von fast 40% hat halte ich die Nutzung der Support Library für sinnvoll.


    Also generell halte ich nach wie vor nix davon diese alten Leichen mitzuschleppen. Leider sind aber die Hardwarehersteller der Meinung, wenn die Kunden eine aktuelle Version des Betriebssystems haben wollen, sollen sie halt ein aktuelles Endgerät kaufen.


    Ich finde, dass man die Engstirnigkeit der Hersteller nicht zu Lasten der Kunden legen sollte.
    Zumal das Einbinden der Support Library relativ simpel ist und kaum Mehraufwand darstellt.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Die haben Pech gehabt.
    Abgesehen vom Kindle fällt mir aber kein Gerät ohne Play Store ein. Wie viele Geräte ohne Play Store gibt es denn?

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Hoi,


    so ganz spontan fällt mir das Arnova 9G2 ein, das hier liegt. Gäbe es Finless Bob nicht, wär da kein Play Store drauf ... es gibt durchaus ein paar Exoten, die kein supported Device sind. Find leider keine Tabelle mit aufgelisteten unsupported Devices, nur supported Devices gibt es hier


    Bin aber auch eigentlich erst über den Emulator drauf gekommen, da dort auch kein Play Store installiert ist ... Habe mir dort allerdings com.google.android.gms.apk und com.android.vending.apk gezogen und via adb -e install ... drauf gezogen.


    Was mir gerade auffällt ist, dass offenbar hauptsächlich Tablets gern mal unsupported sind .... hmm. Irgendwie doof, dass selbst in dem Punkt nichts einheitliches herrscht. Wieso bringen Hersteller Geräte für eine Plattform raus, die aber überhaupt nicht unterstütz werden ... sind da Lizenzkosten zu beachten, die so hoch sind, dass Billigheimer wie Arnova sich das nicht leisten wollen?



    Gruß,
    matze

Jetzt mitmachen!

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