Android Google Map v2 Не рендеринг

Таким образом, я безуспешно искал интернет и следил за бесчисленными учебниками, но я все еще не могу получить свое приложение для отображения карты. В лучшем случае, я могу заставить его отображать экран с переключателями масштабирования, но нет карты, и я получаю сообщение "Не удалось найти информацию о поставщике для com.google.android.gsf.gservices". Я проверил и перепроверял мой ключ api, и это правильно.

Мой код активности. Справедливо отметить, что здесь ничего не происходит, потому что я прокомментировал менеджер фрагментов, который получает карту. Если я раскомментирую это, он выйдет из строя с исключительным исключением.

public class MapActivity extends FragmentActivity { 
private GoogleMap myMap;
private LatLng Location;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_map);
 Location = new LatLng(0,0);
 // MapFragment fragment = (MapFragment)getFragmentManager().findFragmentById(R.id.map);

 // myMap = fragment.getMap();

 }


}

Мой xml для него

Мой файл манифеста

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.Map.android" android:versioncode="1" android:versionname="1.0">

<uses-sdk android:minsdkversion="11" android:targetsdkversion="17">

<permission android:name="com.Map.android.permission.MAPS_RECEIVE" android:protectionlevel="signature">
<uses-permission android:name="com.Map.android.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_NETWORK_STATE">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
<uses-feature android:glesversion="0x00020000" android:required="true">
<application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
 <activity android:name="com.Map.android.MainActivity" android:label="@string/app_name">
 <intent-filter>
 <action android:name="android.intent.action.MAIN">

 <category android:name="android.intent.category.LAUNCHER">
 </category></action></intent-filter>
 </activity>
 <activity android:name="com.Map.android.HomeActivity" android:label="@string/title_activity_home">
 </activity>
 <activity android:name="com.Map.android.MapActivity" android:label="@string/title_activity_map">
 </activity>

 <activity android:name="com.Map.android.Info" android:label="@string/title_activity_info">
 </activity>
 <activity android:name="com.Map.android.InfoActivity" android:label="@string/title_activity_info">
 </activity>
 <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MYKEY">
 </meta-data></application>

 </uses-feature></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></permission></uses-sdk></manifest>

Я понимаю, что это был вопрос, заданный много раз раньше, но я не могу найти ответ на этот вопрос, который исправляет мою проблему.

Любое понимание было бы высоко оценено!

1 ответ

Если вы используете класс supportmapfragment, определенный в вашем xml, тогда

Добавьте этот import com.google.android.gms.maps.SupportMapFragment;

и измените линию инициализации карты следующим образом:

map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
 .getMap();

licensed under cc by-sa 3.0 with attribution.