2013-12-18 3 views
0

я не знаю, что я делаю неправильно в любом свой манифесте, активности или XML, чтобы загрузить карту версию 2,Google Map версия-не работает с фрагментом

я нашел несколько исключений, если вы видите мой сжатый LogCat ,

E/AndroidRuntime(16522): FATAL EXCEPTION: main 
E/AndroidRuntime(16522): java.lang.RuntimeException: Unable to start activityComponentInfo{com.production.MyApp/com.project.MyApp.AddEvent.AddEventMapActivity}:  
android.view.InflateException: Binary XML file line #7: Error inflating class fragment 
E/AndroidRuntime(16522): Caused by: android.view.InflateException: Binary XML file line  #7: Error inflating class fragment 
E/AndroidRuntime(16522): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) 
E/AndroidRuntime(16522): at android.app.Activity.setContentView(Activity.java:1892) 
E/AndroidRuntime(16522): at com.project.MyApp.AddEvent.AddEventMapActivity.onCreate(AddEventMapActivity.java:20) 
E/AndroidRuntime(16522): Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. You must have the following declaration within the <application> element:  <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 
E/AndroidRuntime(16522): at com.google.android.gms.common.GooglePlayServicesUtil.n(Unknown Source) 
E/AndroidRuntime(16522): at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source) 
E/AndroidRuntime(16522): at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source) 
E/AndroidRuntime(16522): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279) 

в то время как манифеста выглядит,

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.production.MyApp" 
android:versionCode="3" 
android:versionName="1.0" > 

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

<uses-permission android:name="android.permission.INTERNET" /> 

<permission 
    android:name=" com.production.MyApp.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name=" com.production.MyApp.permission.MAPS_RECEIVE" /> 
<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-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

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

<application 
    android:name="com.project.MyApp.MyApplication" 
    android:enabled="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Light.NoTitleBar" > 

    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="no issue with api_key here" /> 

и XML,

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

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

</RelativeLayout> 

в то время как я простирающийся FragmentActivity,

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.map_layout); 

    try { 
     // Loading map 
     initilizeMap(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

/** 
* function to load map. If map is not created it will create it for you 
* */ 
private void initilizeMap() { 
    if (googleMap == null) { 
     googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(
       R.id.map)).getMap(); 

     // check if map is created successfully or not 
     if (googleMap == null) { 
      Toast.makeText(getApplicationContext(), 
        "Sorry! unable to create maps", Toast.LENGTH_SHORT) 
        .show(); 
     } 
    } 
} 

ответ

1

Вы должны добавить ниже файл манифест

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

Места это в конце манифеста, после Map API ключа меты-данные тег.

Заканчивать HERE

Это новое требование добавлено от последнего пересмотра 13 обновлений в Google-плэй-услуги.

+0

Вы превосходны :) –

+0

Thnx ....... :) – GrIsHu

+0

@GrIsHu тоже хорошо .. !! – Piyush

0

Вам нужно добавить следующее в вашем манифесте

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

</application> 

Эта информация может быть найдена в сообщ ошибки LogCat.

А также на google play services сайт

Смежные вопросы