我知道有很多这样的帖子,但大多数都与错误的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项目库
有什么想法吗?请帮帮我
我是个好人,我应得的
答案 0 :(得分:4)
我遇到了类似的问题,我通过添加onResume()解决了我的问题。 在我的例子中,我使用了MapView类。
@Override
public void onResume() {
mapView.onResume();
super.onResume();
}
答案 1 :(得分:0)
你缺少另一个元数据元素:)
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
还有一件事。您正在使用SupportMapFragment,它将用于API 11及更低版本。由于您的最低SDK兑换率为11,而且这些天的大部分手机都高于API 11,您可能需要考虑将其转换为MapFragment。
答案 2 :(得分:-1)
不要通过xml将片段放在片段中。 This is not supported