2016-04-20 50 views
-3

谷歌地圖不會出現在我的Android設備上。我做的都對。我從命令提示符創建了證書指紋。 然後我從我的Google控制檯獲得了Map API密鑰,並且我在Manifest.XML中給出了所有權限,其中包括在活動中使用的API密鑰谷歌地圖不會出現在屏幕上

我檢查了所有內容,但爲什麼地圖沒有顯示在我的設備上。

的Android的Manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.justsee.androidapi" > 
    <permission 
     android:name="com.justsee.androidapi.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature" /> 
    <uses-permission android:name="com.justsee.androidapi.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.READ_PHONE_STATE" /> 
    <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.WRITE_EXTERNAL_STORAGE"/> 

    <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" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <meta-data android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

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

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

    </application> 

</manifest> 

activity_main.xml中

<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="match_parent" > 

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

Main_activity.java 


import android.support.v7.app.ActionBarActivity; 
import java.util.ArrayList; 
import java.util.List; 
import android.app.Activity; 
import android.os.Bundle; 
import com.google.android.gms.maps.CameraUpdate; 
import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.LatLngBounds; 
import com.google.android.gms.maps.model.Marker; 
import com.google.android.gms.maps.model.MarkerOptions; 
public class MainActivity extends ActionBarActivity { 
    private GoogleMap map; 
    LatLngBounds.Builder builder; 
    CameraUpdate cu; 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) 
       .getMap(); 
     /**call the map set up method*/ 
     mSetUpMap(); 



    } 

    public void mSetUpMap() { 
     /**clear the map before redraw to them*/ 
     map.clear(); 
     /**Create dummy Markers List*/ 
     List<Marker> markersList = new ArrayList<Marker>(); 
     Marker Delhi = map.addMarker(new MarkerOptions().position(new LatLng(
       28.61, 77.2099)).title("Delhi")); 
     Marker Chaandigarh = map.addMarker(new MarkerOptions().position(new LatLng(
       30.75, 76.78)).title("Chandigarh")); 
     Marker SriLanka = map.addMarker(new MarkerOptions().position(new LatLng(
       7.000, 81.0000)).title("Sri Lanka")); 
     Marker America = map.addMarker(new MarkerOptions().position(new LatLng(
       38.8833, 77.0167)).title("America")); 
     Marker Arab = map.addMarker(new MarkerOptions().position(new LatLng(
       24.000, 45.000)).title("Arab")); 

     /**Put all the markers into arraylist*/ 
     markersList.add(Delhi); 
     markersList.add(SriLanka); 
     markersList.add(America); 
     markersList.add(Arab); 
     markersList.add(Chaandigarh); 

     /**create for loop for get the latLngbuilder from the marker list*/ 
     builder = new LatLngBounds.Builder(); 
     for (Marker m : markersList) { 
      builder.include(m.getPosition()); 
     } 
     /**initialize the padding for map boundary*/ 
     int padding = 50; 
     /**create the bounds from latlngBuilder to set into map camera*/ 
     LatLngBounds bounds = builder.build(); 
     /**create the camera with bounds and padding to set into map*/ 
     cu = CameraUpdateFactory.newLatLngBounds(bounds, padding); 
     /**call the map call back to know map is loaded or not*/ 
     map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() { 
      @Override 
      public void onMapLoaded() { 
       /**set animated zoom camera into map*/ 
       map.animateCamera(cu); 

      } 
     }); 
    } 



} 






Logcat: 


    04-20 12:51:18.761 11173-11173/com.justsee.googlemapapi W/Typeface﹕ getVibeFontPathWithCTS(): fontPath = 
04-20 12:51:18.761 11173-11173/com.justsee.googlemapapi W/Typeface﹕ getVibeFontPathWithCTS(): fontName = 
04-20 12:51:18.761 11173-11173/com.justsee.googlemapapi W/Typeface﹕ getVibeFontPathWithCTS(): isForceToSystemDefault = false 
04-20 12:51:18.761 11173-11173/com.justsee.googlemapapi W/Typeface﹕ VIBEUI_setThemeFont(): sVibeFontPath = ,fontPath = 
04-20 12:51:18.761 11173-11173/com.justsee.googlemapapi W/Typeface﹕ VIBEUI_setThemeFont(): FontPath Not Changed! 
04-20 12:51:18.765 11173-11173/com.justsee.googlemapapi D/wangcy9﹕ setStatusIcon occur wrong theme! 
04-20 12:51:18.747 11173-11173/com.justsee.googlemapapi V/ActivityThread﹕ Handling launch of ActivityRecord{50ef897 [email protected] {com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity}} 
04-20 12:51:18.747 11173-11173/com.justsee.googlemapapi V/ActivityThread﹕ ActivityRecord{50ef897 [email protected] {com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity}}: [email protected], appName=com.justsee.googlemapapi, pkg=com.justsee.googlemapapi, comp={com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity}, dir=/data/app/com.justsee.googlemapapi-1/base.apk 
04-20 12:51:18.778 11173-11173/com.justsee.googlemapapi I/Google Maps Android API﹕ Google Play services package version: 8703248 
04-20 12:51:18.801 11173-11173/com.justsee.googlemapapi D/AbsListView﹕ checkAbsListViewlLogProperty get invalid command 
04-20 12:51:18.823 11173-11173/com.justsee.googlemapapi V/ActivityThread﹕ Performing resume of ActivityRecord{50ef897 [email protected] {com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity}} 
04-20 12:51:18.823 11173-11173/com.justsee.googlemapapi D/ActivityThread﹕ ACT-AM_ON_RESUME_CALLED ActivityRecord{50ef897 [email protected] {com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity}} 
04-20 12:51:18.823 11173-11173/com.justsee.googlemapapi V/ActivityThread﹕ Resume ActivityRecord{50ef897 [email protected] {com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity}} started activity: false, hideForNow: false, finished: false 
04-20 12:51:18.823 11173-11173/com.justsee.googlemapapi V/PhoneWindow﹕ DecorView setVisiblity: visibility = 4 ,Parent =null, this =com.android.internal.policy.impl.PhoneWindow$DecorView{2618e26d I.E..... R.....ID 0,0-0,0} 
04-20 12:51:18.825 11173-11173/com.justsee.googlemapapi D/ViewRootImpl﹕ hardware acceleration is enabled, this = ViewRoot{8750514 com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity,ident = 1} 
04-20 12:51:18.832 11173-11173/com.justsee.googlemapapi V/ActivityThread﹕ Resuming ActivityRecord{50ef897 [email protected] {com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity}} with isForward=true 
04-20 12:51:18.832 11173-11173/com.justsee.googlemapapi V/PhoneWindow﹕ DecorView setVisiblity: visibility = 0 ,Parent =ViewRoot{8750514 com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity,ident = 1}, this =com.android.internal.policy.impl.PhoneWindow$DecorView{2618e26d V.E..... R.....ID 0,0-0,0} 
04-20 12:51:18.832 11173-11173/com.justsee.googlemapapi V/ActivityThread﹕ Scheduling idle handler for ActivityRecord{50ef897 [email protected] {com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity}} 
04-20 12:51:18.833 11173-11173/com.justsee.googlemapapi D/ActivityThread﹕ ACT-LAUNCH_ACTIVITY handled : 0/ActivityRecord{50ef897 [email protected] {com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity}} 
04-20 12:51:18.852 11173-11226/com.justsee.googlemapapi D/OpenGLRenderer﹕ CanvasContext() 0x5587386310 initialize 0x55874ed5f0 
04-20 12:51:18.852 11173-11226/com.justsee.googlemapapi D/Surface﹕ Surface::connect(this=0x55874ed5e0,api=1) 
04-20 12:51:18.853 11173-11226/com.justsee.googlemapapi D/mali_winsys﹕ new_window_surface returns 0x3000 
04-20 12:51:18.853 11173-11226/com.justsee.googlemapapi D/Surface﹕ Surface::allocateBuffers(this=0x55874ed5e0) 
04-20 12:51:18.853 11173-11173/com.justsee.googlemapapi D/AbsListView﹕ onWindowFocusChanged: hasWindowFocus=true, this=maps.ei.k{204b4e4c G.ED..C. ......I. 0,0-0,0} 
04-20 12:51:18.853 11173-11173/com.justsee.googlemapapi V/InputMethodManager﹕ onWindowFocus: null softInputMode=288 first=true flags=#81810100 
04-20 12:51:18.853 11173-11173/com.justsee.googlemapapi V/InputMethodManager﹕ START INPUT: com.android.internal.policy.impl.PhoneWindow$DecorView{2618e26d V.E..... R.....ID 0,0-1080,1920} ic=null [email protected] controlFlags=#104 
04-20 12:51:18.860 11173-11173/com.justsee.googlemapapi I/BufferQueue﹕ [unnamed-11173-1](this:0x55875059c0,id:1,api:0,p:-1,c:-1) BufferQueue core=(11173:com.justsee.googlemapapi) 
04-20 12:51:18.861 11173-11173/com.justsee.googlemapapi I/BufferQueueConsumer﹕ [unnamed-11173-1](this:0x55875059c0,id:1,api:0,p:-1,c:11173) connect(C): consumer=(11173:com.justsee.googlemapapi) controlledByApp=true 
04-20 12:51:18.861 11173-11173/com.justsee.googlemapapi I/BufferQueueConsumer﹕ [unnamed-11173-1](this:0x55875059c0,id:1,api:0,p:-1,c:11173) setConsumerName: unnamed-11173-1 
04-20 12:51:18.861 11173-11173/com.justsee.googlemapapi I/BufferQueueConsumer﹕ [unnamed-11173-1](this:0x55875059c0,id:1,api:0,p:-1,c:11173) setDefaultBufferSize: width=1080 height=1845 
04-20 12:51:18.863 11173-12151/com.justsee.googlemapapi D/MALI﹕ eglCreateContext:206: [MALI] eglCreateContext display 0x5587179060, share context 0x0 here. 
04-20 12:51:18.864 11173-11226/com.justsee.googlemapapi I/GLConsumer﹕ [unnamed-11173-1] attachToContext 
04-20 12:51:18.866 11173-12151/com.justsee.googlemapapi D/MALI﹕ gles_context_new:248: Create GLES ctx 0x7f695b7018 successfully 
04-20 12:51:18.866 11173-12151/com.justsee.googlemapapi D/MALI﹕ eglCreateContext:543: [MALI] eglCreateContext end. Created context 0x558738baa0 here. 
04-20 12:51:18.866 11173-11226/com.justsee.googlemapapi D/Surface﹕ Surface::setBuffersDimensions(this=0x55874ed5e0,w=1080,h=1920) 
04-20 12:51:18.866 11173-12151/com.justsee.googlemapapi D/Surface﹕ Surface::connect(this=0x5587411ee0,api=1) 
04-20 12:51:18.867 11173-12151/com.justsee.googlemapapi I/BufferQueueProducer﹕ [unnamed-11173-1](this:0x55875059c0,id:1,api:1,p:11173,c:11173) connect(P): api=1 producer=(11173:com.justsee.googlemapapi) producerControlledByApp=true 
04-20 12:51:18.867 11173-12151/com.justsee.googlemapapi D/mali_winsys﹕ new_window_surface returns 0x3000 
04-20 12:51:18.868 11173-11226/com.justsee.googlemapapi D/GraphicBuffer﹕ register, handle(0x558751fa90) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00) 
04-20 12:51:18.942 11173-12151/com.justsee.googlemapapi D/Surface﹕ Surface::setBuffersDimensions(this=0x5587411ee0,w=1080,h=1845) 
04-20 12:51:18.942 11173-12151/com.justsee.googlemapapi I/BufferQueueProducer﹕ [unnamed-11173-1](this:0x55875059c0,id:1,api:1,p:11173,c:11173) new GraphicBuffer needed 
04-20 12:51:18.945 11173-12151/com.justsee.googlemapapi D/GraphicBuffer﹕ register, handle(0x55874e4fb0) (w:1080 h:1845 s:1088 f:0x2 u:0x000300) 
04-20 12:51:18.955 11173-12151/com.justsee.googlemapapi D/Surface﹕ Surface::setBuffersDimensions(this=0x5587411ee0,w=1080,h=1845) 
04-20 12:51:18.955 11173-12151/com.justsee.googlemapapi I/BufferQueueProducer﹕ [unnamed-11173-1](this:0x55875059c0,id:1,api:1,p:11173,c:11173) new GraphicBuffer needed 
04-20 12:51:18.959 11173-12151/com.justsee.googlemapapi D/GraphicBuffer﹕ register, handle(0x55874e8ac0) (w:1080 h:1845 s:1088 f:0x2 u:0x000300) 
04-20 12:51:18.962 11173-12151/com.justsee.googlemapapi I/BufferQueueProducer﹕ [unnamed-11173-1](this:0x55875059c0,id:1,api:1,p:11173,c:11173) queueBuffer: slot 0 is dropped, handle=0x55874e4fb0 
04-20 12:51:19.242 11173-11226/com.justsee.googlemapapi D/Surface﹕ Surface::setBuffersDimensions(this=0x55874ed5e0,w=1080,h=1920) 
04-20 12:51:19.246 11173-11226/com.justsee.googlemapapi D/GraphicBuffer﹕ register, handle(0x5587481100) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00) 
04-20 12:51:25.704 11173-11173/com.justsee.googlemapapi D/ViewRootImpl﹕ doProcessInputEvents ViewRoot{8750514 com.justsee.googlemapapi/com.justsee.googlemapapi.MainActivity,ident = 1} 
04-20 12:51:25.704 11173-11173/com.justsee.googlemapapi D/View﹕ Touch up dispatch to maps.dg.p{4448e77 VFED..C. ........ 0,0-1080,1845}, event = MotionEvent { action=ACTION_UP, id[0]=0, x[0]=621.4246, y[0]=815.53613, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=103374561, downTime=103374481, deviceId=10, source=0x1002 } 
04-20 12:51:25.930 11173-12151/com.justsee.googlemapapi D/Surface﹕ Surface::setBuffersDimensions(this=0x5587411ee0,w=1080,h=1845) 
04-20 12:51:25.934 11173-12151/com.justsee.googlemapapi I/BufferQueueProducer﹕ [unnamed-11173-1](this:0x55875059c0,id:1,api:1,p:11173,c:11173) queueBuffer: fps=0.29 dur=6983.02 max=6971.79 min=11.24 
04-20 12:51:25.940 11173-11226/com.justsee.googlemapapi D/Surface﹕ Surface::setBuffersDimensions(this=0x55874ed5e0,w=1080,h=1920) 
04-20 12:51:25.942 11173-11226/com.justsee.googlemapapi D/GraphicBuffer﹕ register, handle(0x55874854b0) (w:1080 h:1920 s:1088 f:0x1 u:0x000b00) 
+0

你應該張貼帶有堆棧跟蹤如果有相關的代碼。 –

+0

你的代碼和xml在哪裏? –

+0

如果一切都比它應該顯示map.may是錯誤的。請顯示你的代碼。 –

回答

0

您應該實現OnMapReadyCallback界面並使用onMapReady(GoogleMap的)回調方法得到一個處理GoogleMap對象。然後,調用片段上的getMapAsync()來註冊回調。請參閱下面的代碼。

public class GoogleMapsActivity extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap gMap; 
    private SupportMapFragment mapFragment; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 
    } 
} 

並在您的OnMapReady回調。

@Override 
public void onMapReady(GoogleMap googleMap) { 
    gMap = googleMap; 
    // additional code here 

} 

希望這會以某種方式幫助你

參考:https://developers.google.com/maps/documentation/android-api/map#add_a_map_to_an_android_app

+0

我用甚至在MapsReadyCallback它不顯示,我用默認的MapsActivity.My地圖不顯示在我的設備上 –

+0

是否有任何錯誤顯示在logcat或在應用程序? –

+0

沒有錯誤我沒有啓用Google開發者控制檯,這是地圖不顯示現在我啓用像魅力thanka很多工作 –