Google Maps in App einbinden - Map bleibt leer

  • 7 Antworten
  • Letztes Antwortdatum
M

Magge420

Neues Mitglied
0
Hallo,

ich bin zurzeit dabei eine App zu schreiben, in der ich jetzt eine Google Map einbinden soll.
Allerdings bleibt die Map immer leer.
Lediglich ein "+" und ein "-" werden rechts unten angezeigt.. (siehe Screenshot im Anhang)
Ich habe bereits Stunden im Internet gelesen, und hunderte Tutorials probiert, aber irgenwas funktioniert noch nicht..

- Die Google-Library hab ich eingebunden
- Die Permissions habe ich ins Manifest reingeschrieben (siehe Code)
- Den API-Key habe ich generieren lassen und auch ins Manifest geschrieben (siehe Code)
- OpenGL 2.0 hab ich auch ins Manifest geschrieben (siehe Code)
- Das Map Fragment hab ich in die Activity-XML eingebaut (siehe Code)


Hier die Manifest-Datei:
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="de.XXX.XXX"
    android:versionCode="1"
    android:versionName="0.1" >

    <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="18" />
    
    <permission
        android:name="de.XXX.XXX.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>
    <uses-permission android:name="de.XXX.XXX.permission.MAPS_RECEIVE"/>

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>
     
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"  >
        
        <uses-library
            android:name="com.google.android.maps" />
        
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyBiMhY_hpVI4W0Ut2XS7kG192PbkHPr04"/>
        
        <activity
            android:name="de.XXX.XXX.StartScreen"
            android:label="@string/app_name" >
            
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Anfahrt"></activity>
    </application>
</manifest>
Hier die Activity-XML:
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:background="@color/color_grau"
    tools:context=".StartScreen" >
    
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_below="@+id/TextView01"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</RelativeLayout>
Hier der LogCat:
Code:
09-25 07:25:15.639: D/gralloc_goldfish(12600): Emulator without GPU emulation detected.
09-25 07:25:19.039: D/dalvikvm(12600): GC_FOR_ALLOC freed 82K, 7% free 2905K/3120K, paused 60ms, total 78ms
09-25 07:25:19.109: D/dalvikvm(12600): GC_FOR_ALLOC freed 6K, 7% free 2954K/3176K, paused 45ms, total 51ms
09-25 07:25:19.119: I/dalvikvm-heap(12600): Grow heap (frag case) to 3.618MB for 635812-byte allocation
09-25 07:25:19.190: D/dalvikvm(12600): GC_FOR_ALLOC freed <1K, 6% free 3575K/3800K, paused 64ms, total 64ms
09-25 07:25:19.909: I/Choreographer(12600): Skipped 46 frames!  The application may be doing too much work on its main thread.
09-25 07:25:23.319: D/dalvikvm(12600): GC_FOR_ALLOC freed 157K, 7% free 3931K/4220K, paused 69ms, total 91ms
09-25 07:25:24.440: E/Google Maps Android API(12600): Google Maps Android API v2 only supports devices with OpenGL ES 2.0 and above
09-25 07:25:24.579: D/dalvikvm(12600): GC_FOR_ALLOC freed 311K, 10% free 4134K/4576K, paused 54ms, total 66ms
09-25 07:25:25.459: D/dalvikvm(12600): GC_FOR_ALLOC freed 204K, 7% free 4476K/4812K, paused 80ms, total 91ms
09-25 07:25:25.839: D/libEGL(12600): Emulator without GPU support detected. Fallback to software renderer.
09-25 07:25:25.839: D/libEGL(12600): loaded /system/lib/egl/libGLES_android.so
09-25 07:25:25.849: I/Choreographer(12600): Skipped 48 frames!  The application may be doing too much work on its main thread.
09-25 07:25:26.459: D/dalvikvm(12600): GC_FOR_ALLOC freed 398K, 13% free 4520K/5148K, paused 113ms, total 119ms
09-25 07:25:26.719: D/dalvikvm(12600): GC_FOR_ALLOC freed 477K, 15% free 4521K/5280K, paused 116ms, total 117ms
09-25 07:25:26.889: D/dalvikvm(12600): GC_FOR_ALLOC freed 457K, 15% free 4524K/5280K, paused 32ms, total 33ms
09-25 07:38:01.629: D/dalvikvm(12600): GC_FOR_ALLOC freed 665K, 15% free 4535K/5332K, paused 100ms, total 101ms
09-25 07:48:27.449: D/InputEventConsistencyVerifier(12600): KeyEvent: ACTION_UP but key was not down.
09-25 07:48:27.449: D/InputEventConsistencyVerifier(12600):   in android.view.ViewRootImpl@416f41c8
09-25 07:48:27.449: D/InputEventConsistencyVerifier(12600):   0: sent at 20406020000000, KeyEvent { action=ACTION_UP, keyCode=KEYCODE_BACK, scanCode=158, metaState=0, flags=0x8, repeatCount=0, eventTime=20406020, downTime=20405905, deviceId=0, source=0x101 }
09-25 07:48:27.449: D/InputEventConsistencyVerifier(12600):   -- recent events --
09-25 07:48:27.449: D/InputEventConsistencyVerifier(12600):   1: sent at 19019984569000, MotionEvent { action=ACTION_UP, id[0]=0, x[0]=90.0, y[0]=463.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=19019984, downTime=19019831, deviceId=0, source=0x1002 }
09-25 07:48:27.449: D/InputEventConsistencyVerifier(12600):   2: sent at 19019831595000, MotionEvent { action=ACTION_DOWN, id[0]=0, x[0]=90.0, y[0]=463.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=19019831, downTime=19019831, deviceId=0, source=0x1002 }
09-25 07:48:52.399: D/dalvikvm(12600): GC_FOR_ALLOC freed 415K, 11% free 4801K/5348K, paused 171ms, total 202ms
09-25 07:48:52.429: I/Choreographer(12600): Skipped 81 frames!  The application may be doing too much work on its main thread.
09-25 07:48:52.779: D/dalvikvm(12600): GC_FOR_ALLOC freed 548K, 19% free 4580K/5612K, paused 134ms, total 140ms
09-25 07:48:53.179: D/dalvikvm(12600): GC_FOR_ALLOC freed 306K, 19% free 4583K/5612K, paused 147ms, total 148ms
09-25 07:48:53.539: D/dalvikvm(12600): GC_FOR_ALLOC freed 325K, 19% free 4583K/5612K, paused 162ms, total 163ms
09-25 07:48:53.619: D/dalvikvm(12600): GC_FOR_ALLOC freed 304K, 19% free 4585K/5612K, paused 35ms, total 36ms
Bei dieser Zeile muss wahrscheinlich der Fehler liegen, da diese rot ist:
09-25 07:25:24.440: E/Google Maps Android API(12600): Google Maps Android API v2 only supports devices with OpenGL ES 2.0 and above

In die dazugehörige Java Datei hab ich bisher noch nichts geschrieben, um dortige Fehler auszuschließen.
Allerdings habe ich in den Tutorials gesehen, dass die Map auch so funktionieren müsste.

Die App hab ich bereits im Emulator und auf meinem Samsung Galaxy S2 getestet, bei beiden das gleiche Ergebnis..

Nun weiß ich nicht mehr weiter..
Ich hoffe jemand kann mir helfen..



Danke im Voraus! :smile:

Magge420
 

Anhänge

  • Screenshot.png
    Screenshot.png
    2,7 KB · Aufrufe: 231
Naja wenn man die Fehlermeldung liest so besagt diese ja, dass das Gerät nicht weit genug ist (OpenGL ES 2.0 and above wir gefordert).
Mit was hast du es im Emulator getestet?
Und würde dir auch eine ältere Version der GMaps API reichen? Dann versuchs mal damit.

Grüße
 
Erst einmal danke für deine Antwort!

Der Emulator läuft mit Android 4.3, welches eigentlich OpenGL ES 3.x hat wenn ich mich nicht irre?!

Ich möchte mit der Google Map nur einen Standort anzeigen lassen, reicht da eine ältere Version der GMaps API?
Wie kann ich eine ältere Version der GMaps API verwenden?

Aber das Samsung Galaxy S2 mit 4.1.2 müsste doch OpenGL ES 2.0 haben oder? Dann müsste es doch zumindest dort laufen..
 
ich glaube eher im emulator lässt sich das nicht testen.

du musst das auf einem echten device ausführen. ein galaxy s2 hat sicher opengl es2.0

glaub 99 % aller geräte haben 2.0.
 
hast du den emulator mit googleapi gestartet?
 
Danke für die Antworten.
Auf meinem Galaxy S2 hab ich die App bereits getestet, von diesem stammt auch der Screenshot. Anscheinend liegt das Problem wo anders, wahrscheinlich an dem API-KEY?!
Den Emulator hab ich selbstverständlich gestartet mit GoogleApi in der 4.3 Version!
 
Warum mischen die Leute eigentlich immer zwei Anleitungen?

Woher kommt das
Code:
<permission
        android:name="de.XXX.XXX.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>
    <uses-permission android:name="de.XXX.XXX.permission.MAPS_RECEIVE"/>

und auch:
Code:
 <uses-library
            android:name="com.google.android.maps" />

Ich les hier: https://developers.google.com/maps/documentation/android/start
nichts davon, dass diese Einträge ins Manifest gehören bzw. überhaupt hinzugefügt werden müssen ;) Bei der Maps API V1 gabs das glaub, aber das hat sich eben geändert...

Und ansonsten: Liegt vermutlich am falschen API-Key... Wirklich Schritt für Schritt nach der Anleitung bei Google vorgegangen? ;) Packagename in der Google Console lautet entsprechend deinem Projekt? (und zwar nur dem Basepackage, es muss nicht das genaue Package sein ... also wenn deine MapsActivity nochmal in einem Unterpackage liegt, so musst du das online nicht angeben, es reicht das Package in dem deine app liegt, also : " package="de.XXX.XXX"")
 
Ich habs jetzt gelöst indem ich die Map nicht in die App einbinde.
Ich übergebe einfach einen Link der dann mit Google Maps geöffnet werden kann.
Trotzdem großes Danke für die Antworten! :smile:
 

Ähnliche Themen

X
Antworten
19
Aufrufe
650
wilco
W
L
Antworten
3
Aufrufe
860
mips400
mips400
E
Antworten
11
Aufrufe
1.125
evgkop
E
nowo84
Antworten
2
Aufrufe
420
nowo84
nowo84
Zurück
Oben Unten