3
  1. 我谷歌了两天,仍然是这条消息。我使用调试密钥在我的 nexus 7 上进行调试。
  2. 我不知道哪里错了。我有右键,打开正确的 api 访问
  3. 但我平板电脑上的谷歌地图仍然空白。

地图片段:

    public View onCreateView(LayoutInflater inflater, ViewGroup container,

捆绑 savedInstanceState) {
查看 rootView = inflater.inflate(R.layout.map_fragment,container, false); 容器.removeAllViews(); 地图 = ((SupportMapFragment)getActivity() .getSupportFragmentManager() .findFragmentById(R.id.map)) .getMap(); map.setMyLocationEnabled(true); map.setMapType(GoogleMap.MAP_TYPE_NORMAL);

   mMapFragment = SupportMapFragment.newInstance();
   FragmentTransaction fragmentTransaction = 

getChildFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.map,mMapFragment);
fragmentTransaction.commit(); 返回根视图;}

显现:

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="16" />

<!-- Google Map -->   <permission
      android:name="com.jertt.xxx.permission.MAPS_RECEIVE"
      android:protectionLevel="signature"/>
<uses-permission android:name="com.jertt.yummymap.permission.MAPS_RECEIVE"/>

<!-- end -->

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<!-- end -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.jertt.yummymap.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>

    <!-- Google Map API Key -->

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

    <!-- end -->
</application>

map_fragment.xml

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

4

3 回答 3

1

不确定这是否是您的问题,但我花了很多时间试图解决这个问题。检查权限,重新生成 api 密钥。终于在另一个对我有用的答案中看到了一条小评论。

重命名您的 debug.keystore 文件,然后进行清理,然后构建。这将生成一个新的 debug.keystore。和一个新的 SHA1 指纹。将该新指纹插入 api 控制台,然后重试。

您可以检查的另一件事是查看您尝试从中访问 api 的项目的 api 控制台的“报告”部分。如果您尝试运行您的项目并且该 api 没有流量,则可能是 SHA1 指纹或您提供的包名称错误。就我而言,它是指纹。

于 2013-08-01T03:08:13.280 回答
0

您的 min sdk 为 14。无需使用SupportMapFragment. 使用MapFragment.

https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/MapFragment

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

  GoogleMap  mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
                                .getMap();

也缺少权限

 <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"/>
 <!-- The following two permissions are not required to use
 Google Maps Android API v2, but are recommended. -->
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

确保您已遵循所有步骤@

https://developers.google.com/maps/documentation/android/

编辑:来自评论

从文档中引用

MapFragment仅当您面向 API 12及更高版本时才使用类。否则,使用 SupportMapFragment。

于 2013-07-25T05:04:15.137 回答
0

你必须改变这个:

GoogleMap  mMap = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map))
                            .getMap();

并且还包括清单文件的库:

<uses-library
        android:name="com.google.android.maps"
        android:required="true" />
于 2013-07-25T05:12:52.217 回答