2016-05-05 2 views
1

Я использую все разрешения, но получаю черный экран карты google. Следующий код, который я использую для отображения карты в своей деятельности. Я установил все разрешения в манифесте. Я использую уровень 23 Api. БлагодаряGoogle map, показывающий пустой экран 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) }; 
} 

My App не врезаться, но я получаю эту ошибку в 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 

Я использую феллинг разрешения в 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" /> 

Макет:

<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

Приложите LogCat. Уместно, у вас есть недопустимый токен. – Fiil

+0

Repalce com.google.android.gms.maps.MapFragment с com.google.android.gms.maps.SupportMapFragment и проверьте, работает ли он – Pehlaj

+0

Нет, это не работает, но я решил сейчас, после двух часов тратить свое время, когда нашел что мой интернет не работает, но спасибо за все. –

ответ

1

Вы можете отсутствовать следующие разрешения или мета-тег для данных API ключа

<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

Также убедитесь, что вы добавили ключ API в манифест Pehlaj

+0

Я использую все Просто см. выше –

+0

Где метаданные для ключа API? – Pehlaj