2016-05-05 16 views
1

Ich benutze alle Erlaubnis, aber ich bekomme schwarzen Bildschirm von Google Map. Der folgende Code, den ich verwende, um die Karte in meiner Aktivität anzuzeigen. Ich habe alle Berechtigungen in Manifest festgelegt. Ich benutze 23 API-Level. DankGoogle Karte zeigt leeren Bildschirm Android

MainActivity:

try { 
     // Loading map 
     initilizeMap(); 

     // Changing map type 
     googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
     // googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
     // googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 
     // googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); 
     // googleMap.setMapType(GoogleMap.MAP_TYPE_NONE); 

     if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) 
       == PackageManager.PERMISSION_GRANTED) { 
      googleMap.setMyLocationEnabled(true); 
     } else { 
      // Show rationale and request permission. 

     } 

     // Enable/Disable zooming controls 
     googleMap.getUiSettings().setZoomControlsEnabled(false); 

     // Enable/Disable my location button 
     googleMap.getUiSettings().setMyLocationButtonEnabled(true); 

     // Enable/Disable Compass icon 
     googleMap.getUiSettings().setCompassEnabled(true); 

     // Enable/Disable Rotate gesture 
     googleMap.getUiSettings().setRotateGesturesEnabled(true); 

     // Enable/Disable zooming functionality 
     googleMap.getUiSettings().setZoomGesturesEnabled(true); 

     double latitude = 17.385044; 
     double longitude = 78.486671; 

     // lets place some 10 random markers 
     for (int i = 0; i < 10; i++) { 
      // random latitude and logitude 
      double[] randomLocation = createRandLocation(latitude, 
        longitude); 

      // Adding a marker 
      MarkerOptions marker = new MarkerOptions().position(
        new LatLng(randomLocation[0], randomLocation[1])) 
        .title("Hello Maps " + i); 

      Log.e("Random", "> " + randomLocation[0] + ", " 
        + randomLocation[1]); 

      // changing marker color 
      if (i == 0) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_AZURE)); 
      if (i == 1) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_BLUE)); 
      if (i == 2) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_CYAN)); 
      if (i == 3) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)); 
      if (i == 4) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)); 
      if (i == 5) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)); 
      if (i == 6) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_RED)); 
      if (i == 7) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_ROSE)); 
      if (i == 8) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_VIOLET)); 
      if (i == 9) 
       marker.icon(BitmapDescriptorFactory 
         .defaultMarker(BitmapDescriptorFactory.HUE_YELLOW)); 

      googleMap.addMarker(marker); 

      // Move the camera to last position with a zoom level 
      if (i == 9) { 
       CameraPosition cameraPosition = new CameraPosition.Builder() 
         .target(new LatLng(randomLocation[0], 
           randomLocation[1])).zoom(15).build(); 

       googleMap.animateCamera(CameraUpdateFactory 
         .newCameraPosition(cameraPosition)); 
      } 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 
@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
    if (requestCode == MY_LOCATION_REQUEST_CODE) { 
     if (permissions.length == 1 && 
       permissions[0] == android.Manifest.permission.ACCESS_FINE_LOCATION && 
       grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
      googleMap.setMyLocationEnabled(true); 

     } else { 
      // Permission was denied. Display an error message. 
     } 
    } 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    initilizeMap(); 
} 

/** 
* function to load map If map is not created it will create it for you 
* */ 
private void initilizeMap() { 
    if (googleMap == null) { 
     googleMap = ((MapFragment) getFragmentManager().findFragmentById(
       R.id.map)).getMap(); 

     // check if map is created successfully or not 
     if (googleMap == null) { 
      Toast.makeText(getApplicationContext(), 
        "Sorry! unable to create maps", Toast.LENGTH_SHORT) 
        .show(); 
     } 
    } 
} 

/* 
* creating random postion around a location for testing purpose only 
*/ 
private double[] createRandLocation(double latitude, double longitude) { 

    return new double[] { latitude + ((Math.random() - 0.5)/500), 
      longitude + ((Math.random() - 0.5)/500), 
      150 + ((Math.random() - 0.5) * 10) }; 
} 

Meine App abstürzt, nicht aber ich erhalte diesen Fehler in der logcat:

05-05 15:19:39.811 129-555/? E/PHService: SysfsAccess : opening's messed up, /sys/devices/platform/galcore/gpu/gpu0/gpufreq/scaling_governor Permission denied 
05-05 15:19:39.811 129-555/? E/PHService: GpuOperator : int  android::GpuOperator::setScalingPolicy(android::sp<android::GpuUnitParam>&), check failed!!!! 
05-05 15:19:40.032 908-908/? E/Qmage: onDecode : QmageDecodeFrame 20140421 Rev.6376 
05-05 15:19:40.032 908-908/? E/Qmage: This is decoding 
05-05 15:19:40.032 908-908/? E/Qmage: decoding stream->hasLength() 
05-05 15:19:40.032 908-908/? E/Qmage: onDecode : QmageDecParseHeader call : QM 
05-05 15:19:40.032 908-908/? E/Qmage: Qmage parsing for decoding ok 
05-05 15:19:40.032 908-908/? E/Qmage: onDecode : QmageHeader.NinePatched 0 
05-05 15:19:40.032 908-908/? E/Qmage: onDecode : QmageHeader Height() 99 Width() : 77 sampleSize : 1 
05-05 15:19:40.032 908-908/? E/Qmage: normal image decoding 
05-05 15:19:40.032 908-908/? E/Qmage: onDecode : QmageDecodeFrame call : QM 
05-05 15:19:40.032 908-908/? E/Qmage: onDecode : return true QM 
05-05 15:19:40.122 129-555/? E/PHService: SysfsAccess : opening's messed  up, /sys/devices/platform/galcore/gpu/gpu0/gpufreq/scaling_governor Permission  denied 
05-05 15:19:40.122 129-555/? E/PHService: GpuOperator : int   android::GpuOperator::setScalingPolicy(android::sp<android::GpuUnitParam>&),  check failed!!!! 
05-05 15:19:40.212 730-730/? E/Qmage: onDecode : QmageDecodeFrame 20140421 Rev.6376 
05-05 15:19:40.212 730-730/? E/Qmage: This is decoding 
05-05 15:19:40.212 730-730/? E/Qmage: decoding stream->hasLength() 
05-05 15:19:40.212 730-730/? E/Qmage: onDecode : QmageDecParseHeader call : QM 
05-05 15:19:40.212 730-730/? E/Qmage: Qmage parsing for decoding ok 
05-05 15:19:40.212 730-730/? E/Qmage: onDecode : QmageHeader.NinePatched 0 
05-05 15:19:40.212 730-730/? E/Qmage: onDecode : QmageHeader Height() 72 Width() : 72 sampleSize : 1 
05-05 15:19:40.212 730-730/? E/Qmage: normal image decoding 
05-05 15:19:40.212 730-730/? E/Qmage: onDecode : QmageDecodeFrame call : QM 
05-05 15:19:40.212 730-730/? E/Qmage: onDecode : return true QM 
05-05 15:19:40.232 129-555/? E/PHService: SysfsAccess : opening's messed up, /sys/devices/platform/galcore/gpu/gpu0/gpufreq/scaling_governor Permission denied 
05-05 15:19:40.232 129-555/? E/PHService: GpuOperator : int android::GpuOperator::setScalingPolicy(android::sp<android::GpuUnitParam>&), check failed!!!! 
    05-05 15:19:40.392 129-555/? E/PHService: SysfsAccess : writing's messed up: /sys/devices/system/cpu/cpu1/online, -1, Invalid argument 
05-05 15:19:40.392 129-555/? E/PHService: CpuOperator : int android::CpuOperator::setCpuOnlineStatus(unsigned int, int*), check failed!!!! 
05-05 15:19:40.392 129-555/? E/PHService: SysfsAccess : opening's messed up, /sys/devices/platform/galcore/gpu/gpu0/gpufreq/scaling_governor Permission denied 
05-05 15:19:40.392 129-555/? E/PHService: GpuOperator : int  android::GpuOperator::setScalingPolicy(android::sp<android::GpuUnitParam>&), check failed!!!! 
05-05 15:19:40.392 625-625/? E/MotionRecognitionService: mReceiver.onReceive : ACTION_USER_PRESENT :: UNLOCK SCREEN 
05-05 15:19:40.422 908-908/? E/Launcher: Error finding setting, default accessibility to not found: accessibility_enabled 
05-05 15:19:40.512 129-555/? E/PHService: SysfsAccess : writing's messed up: /sys/devices/system/cpu/cpu1/online, -1, Invalid argument 
05-05 15:19:40.512 129-555/? E/PHService: CpuOperator : int android::CpuOperator::setCpuOnlineStatus(unsigned int, int*), check failed!!!! 
05-05 15:19:40.512 129-555/? E/PHService: SysfsAccess : opening's messed up, /sys/devices/platform/galcore/gpu/gpu0/gpufreq/scaling_governor Permission denied 
05-05 15:19:40.512 129-555/? E/PHService: GpuOperator : int android::GpuOperator::setScalingPolicy(android::sp<android::GpuUnitParam>&), check failed!!!! 
    05-05 15:19:40.562 129-555/? E/PHService: SysfsAccess : opening's messed up, /sys/devices/platform/galcore/gpu/gpu0/gpufreq/scaling_governor Permission denied 

    05-05 15:19:46.848 2493-2493/? E/SPPClientService:  [PackageInfoChangeReceiver] android.intent.action.PACKAGE_REMOVED 
    05-05 15:19:46.848 2493-2493/? E/SPPClientService: [PackageInfoChangeReceiver] [handlePkgRemovedEvent] PackageName :  googlemap.harry.com.googlemapintegratesample, true, false 
05-05 15:19:46.848 2493-2493/? E/SPPClientService: [PackageInfoChangeReceiver] [handlePkgRemovedEvent] Ignore Replacing case 
05-05 15:19:47.058 970-970/? E/NetworkScheduler.SchedulerReceiver: Invalid parameter app 
    05-05 15:19:47.058 970-970/? E/NetworkScheduler.SchedulerReceiver: Invalid   package name : Perhaps you didn't include a PendingIntent in the extras? 
    05-05 15:19:47.899 970-970/? E/NetworkScheduler.SchedulerReceiver: Invalid parameter app 
    05-05 15:19:47.899 970-970/? E/NetworkScheduler.SchedulerReceiver: Invalid package name : Perhaps you didn't include a PendingIntent in the extras? 
    05-05 15:19:48.350 18757-18757/? E/memtrack: Couldn't load memtrack module (No such file or directory) 
    05-05 15:19:48.350 18757-18757/? E/android.os.Debug: failed to load memtrack module: -2 
05-05 15:19:48.700 129-555/? E/PHService: SysfsAccess : opening's messed up, /sys/devices/platform/galcore/gpu/gpu0/gpufreq/scaling_governor Permission denied 

Ich verwende Folling Berechtigungen in Android Manifest:

package="googlemap.harry.com.googlemapintegratesample"> 

<permission 
    android:name="googlemap.harry.com.googlemapintegratesample.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name="googlemap.harry.com.googlemapintegratesample.permission.MAPS_RECEIVE" /> 

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

<!-- Required to show current location --> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<!-- Required OpenGL ES 2.0. for Maps V2 --> 
<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 

<!-- Requires OpenGL ES version 2 --> 
<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 

Layout:

<android.support.design.widget.CoordinatorLayout  xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:context="googlemap.harry.com.googlemapintegratesample.MainActivity"> 

<fragment 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.MapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

+0

Bitte fügen logcat fehlen. Wahrscheinlich haben Sie ein ungültiges Token. – Fiil

+0

Repaliere com.google.android.gms.maps.MapFragment mit com.google.android.gms.maps.SupportMapFragment und überprüfe, ob es funktioniert – Pehlaj

+0

Nein, das funktioniert nicht, aber ich habe es jetzt gelöst, nach zwei Stunden verschwende ich meine Zeit, die ich gefunden habe dass mein Internet nicht funktioniert, aber danke für alles –

Antwort

1

Sie könnten die folgenden Berechtigungen oder Metadaten-Tag für API-Schlüssel

<uses-library android:name="com.google.android.maps"/> 
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="my api key"/> 

<permission 
 
     android:name="com.yourpkg.permission.MAPS_RECEIVE" 
 
     android:protectionLevel="signature" /> 
 
<permission 
 
      android:name="com.yourpkg.permission.MAPS_RECEIVE" 
 
      android:protectionLevel="signature"/> 
 

 
<uses-permission android:name="com.yourpkg.permission.MAPS_RECEIVE"/> 
 

 
<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"/>

+0

Stellen Sie außerdem sicher, dass Sie den API-Schlüssel in Manifest hinzugefügt haben Pehlaj

+0

ich benutze alles Einfach oben sehen –

+0

Wo sind Metadaten für den API-Schlüssel? – Pehlaj

Verwandte Themen