2013-05-14 43 views
7

Tôi đang cố gắng hiển thị bản đồ google. Tôi có thể nhìn thấy nền (nền màu xám nhạt, gạch nhỏ, biểu trưng của Google ở ​​phía dưới bên trái), vì vậy tôi biết rằng tôi đã gần gũi. Tuy nhiên, không có bản đồ thực tế nào được hiển thị. Trong LogCat, tôi thấy thông báo này lặp đi lặp lại nhiều lần:Android: Google Maps không hiển thị

05-14 13: 28: 17,926: W/System.err (27.458): tại android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher $ DispatcherServer.run (DataRequestDispatcher.java:1702)

Tôi đang sử dụng Google maps api 2 với điện thoại chia sẻ để thử nghiệm đang chạy 2.3.4.

Bất kỳ ai biết điều gì có thể gây ra điều này? Cảm ơn!

> package com.example.maptest; 
> 
> import android.os.Bundle; 
> 
> import com.google.android.maps.MapActivity; import 
> com.google.android.maps.MapController; import 
> com.google.android.maps.MapView; 
> 
> public class MyMapActivity extends MapActivity { private MapView 
> mapView; private MapController mapController; 
> 
> @Override public void onCreate(Bundle savedInstanceState) { 
>  super.onCreate(savedInstanceState); 
>  setContentView(R.layout.map_layout); 
>  mapView = (MapView)findViewById(R.id.map_view); 
>  } 
> 
> @Override protected boolean isRouteDisplayed() { 
>  return false; } 
> 
> } 

<permission android:name="com.example.maptest.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE"/> 
<uses-permission android:name="android.permission.INTERNET" /> 
<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-feature 
    android:glEsVersion="0x00020000" 
    android:required="true"/> 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

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

    <activity 
     android:name="com.example.maptest.MyMapActivity" 
     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=".MainActivity" > 
     </activity> 

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

</application> 

Trả lời

11

Vấn đề này thường có liên quan đến chính bản đồ API sử dụng để đăng manifest. Hãy xem this postthis one mô tả cùng một lỗi mà bạn đang gặp phải. Trong cả hai trường hợp, đó là vì khóa API mà họ đã sử dụng đã được tạo sai số keystore. Bạn cần đảm bảo bạn sử dụng kho khóa gỡ lỗi khi tạo khóa API trong bảng điều khiển API của Google nếu bạn đang thử nghiệm từ nhật thực.

+0

Cảm ơn. Tôi đã sử dụng lại một khóa API khác từ một dự án khác. Tôi tạo ra một cái mới cho dự án này, mà đã loại bỏ các lỗi trong LogCat. Vẫn không có bản đồ, mặc dù ... – Alex

3

Về cơ bản, bạn đang trộn Android API v1 không được chấp nhận với API v2 mới.

Cách dễ nhất để di chuyển là để loại bỏ tất cả V1 mã liên quan và bắt đầu từ đầu, theo liên kết này: https://developers.google.com/maps/documentation/android/start

+0

Tôi không có sự lựa chọn vì điều này cần phải chạy trên 2.3.4 (API 10). v2 chỉ chạy trên API 11, như tôi đã hiểu. Không? – Alex

+2

Không. API v2 hoạt động từ 2.2 (API 8). Ngoài ra nó đòi hỏi OpenGL ES 2.0, nhưng (trừ khi bạn đang phát triển cho các thị trường mới nổi) hơn 99% thiết bị có điều đó. –

+0

Cảm ơn. Tôi đã được thông qua các tài liệu mà bạn đề nghị trước đó, nhưng không có may mắn. Có dòng này từ tài liệu đó: "Xin lưu ý rằng mã bên dưới chỉ hữu ích để kiểm tra cài đặt của bạn trong ứng dụng nhắm mục tiêu API Android 12 trở lên", vì vậy tôi vẫn bị kẹt. Tôi sẽ tiếp tục làm việc trên nó. – Alex

1

Nếu bạn có một số gói trong ứng dụng của bạn hãy cẩn thận khi bạn tạo API key bạn phải sử dụng tên gói bao gồm trong đầu của tập tin android mainfest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    **package="com.xxx.xxx"** 
    android:versionCode="1" 
    android:versionName="1.0" > 
0

cũng thực sự tôi đã sống vấn đề này và nó làm cho tôi điên. sau khi tôi tìm ra giải pháp. rất đơn giản:

1- trong dự án của bạn, google_maps_api.xml chỉ cần kiểm tra liên kết web là tên gói của bạn, nếu tên gói của bạn tồn tại và chính xác. hãy vào trang và nhận được chìa khóa

Để có được một, đi theo liên kết này, hãy làm theo các hướng dẫn và nhấn "Create" ở cuối:

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r=... 

2- chỉ cần tạo bản đồ gooogle mới dự án hoạt động lấy mã SHA-1.

không quên SHA-1 code đang cùng trong dự án khác của bạn, nhưng liên kết web là uniqu cho mỗi chương trình của bạn

-1

tôi đã cùng một vấn đề. Vấn đề nằm trong tệp kê khai của tôi. Kiểm tra xem khóa bản đồ google bạn đã lưu trữ trong STRING.xml và khóa bản đồ google trong google_maps_api.xml không có cùng tên hay không.

-1

chuyển tới bảng điều khiển developper bật bản đồ api cho thiết bị của bạn, sau đó sao chép khóa và dán các giá trị-> google_maps_api.xml. Nó hoạt động Sử dụng phím Android (được tạo tự động bởi dịch vụ google) nếu trên thiết bị Android

+0

Câu trả lời này đã được đưa ra bởi người dùng Diya Bhat và đã bị bỏ phiếu. Đưa ra một lời giải thích rất tốt lý do tại sao bạn sẽ không bị bỏ phiếu quá bằng cách sửa đổi câu trả lời của bạn với thông tin có liên quan nổi bật ... Hiện được gắn cờ với chất lượng rất thấp. – ZF007

Các vấn đề liên quan