1

我知道有很多这样的帖子,但大多数都与错误的 API 密钥有关,但这不是我的情况。

我知道 API 密钥没问题,如果我更改它,我会收到授权错误。从 API 控制台,如果我转到“报告”,我可以看到我的所有请求。

我按照官方教程,读了 10 遍: https ://developers.google.com/maps/documentation/android/start

需要注意的一些奇怪的事情:

当片段第一次显示时,网格是空白的。但是,如果我关闭屏幕,然后将其打开(onResum),地图会出现但它卡住了,我无法移动地图或使用缩放控制器)而且,如果从我的片段中,我将地图置于某个位置的中心,地图居中。所以忘记API密钥的东西。

这是我的清单:

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

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

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


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

    <application android:icon="@drawable/icon" android:label="@string/app_name"          android:theme="@android:style/Theme.Black.NoTitleBar" >


      <activity android:name=".StartActivity"
              android:label="@string/app_name"
       android:theme="@style/FapiaoTheme" android:screenOrientation="portrait" 
       >     
        <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.maps.v2.API_KEY" 
       android:value="MY_KEY"/>


</application>

这是我的布局:

    <?xml version="1.0" encoding="utf-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/map"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:name="com.google.android.gms.maps.SupportMapFragment"/>

这是我的片段(如您所见,我使用的是 Sherlock)

    public class FragmentContact extends SherlockFragment
    {

      public void onActivityCreated(Bundle savedInstanceState) 
      {
        super.onCreate(savedInstanceState);
      }

      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
     {
            View view = inflater.inflate(R.layout.plan2 , container, false);

            return view;    
     }

     }

当然,我没有收到来自 logcat 的错误,也没有警告。

我刚刚收到一些关于内存的调试消息,我认为这与我的问题无关。

/dev/pmem:映射缓冲区基数:0x559da000 大小:9539584 偏移量:7798784 fd:115

我将 google-play-service 添加为我的 Eclipse 项目的库

任何想法 ?请帮我

我是好人,我应得的

4

3 回答 3

4

我遇到过类似的问题,我通过添加 onResume() 解决了我的问题。就我而言,我使用了 MapView 类。

@Override
public void onResume() {
    mapView.onResume();
    super.onResume();
}
于 2014-01-15T07:16:44.707 回答
0

您缺少另一个元数据元素:)

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

还有一件事。您正在使用将用于 API 11 及以下版本的 SupportMapFragment。由于您的最低 SDK 版本为 11,并且现在大多数手机都高于 API 11,因此您可能需要考虑将其转换为 MapFragment。

于 2014-01-15T07:36:44.450 回答
-1

不要通过 xml 将片段放入片段中。这是不支持的。

于 2013-09-28T18:15:41.520 回答