Question

I have searched for the issue, but haven't found a solution. This is my AndroidManifest:

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


    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="19" />
    <meta-data android:name="com.google.android.maps.v2.API_KEY"
                android:value="key hidden"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"/>
<permission android:name="com.solinpromex.vivegrancanaria.permission.MAPS_RECEIVE"
                    android:protectionLevel="signature"/>
<uses-permission android:name="com.solinpromex.vivegrancanaria.permission.MAPS_RECEIVE"/>
<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-feature
  android:glEsVersion="0x00020000"
  android:required="true"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.solinpromex.vivegrancanaria.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>
               <activity
      android:name=".categorias_list"
      android:label="Categorias de Ofertas y Descuentos">          
 </activity>
  <activity
      android:name=".SingleContactActivity"
      android:label="@string/app_name">          
 </activity>
  <activity
      android:name=".Empresas_MainActivity"
      android:label="@string/app_name">          
 </activity>
   <activity
      android:name=".Ofertas_list"
      android:label="@string/app_name">          
 </activity>
  <activity
      android:name=".Ofertas_Application"
      android:label="@string/app_name"> 

 </activity>
<activity
      android:name=".Ofertas_MainActivity"
      android:label="@string/app_name"> 
</activity>

<activity
      android:name=".Ofertas_ApplicationAdapter"
      android:label="@string/app_name"> 
</activity>
<activity
      android:name=".Ofertas_FetchDataListener"
      android:label="@string/app_name"> 
</activity>
<activity
      android:name=".Ofertas_FetchDataTask"
      android:label="@string/app_name"> 
</activity>
<activity
      android:name=".Empresas_SingleItemView"
      android:label="@string/app_name"> 
</activity>

  <activity
      android:name=".Facebook"
      android:label="@string/app_name"> 
</activity>
<activity
      android:name=".Mapa_MainActivity"
      android:label="@string/app_name"> 
</activity>
    </application>

</manifest>

This is XML layout file:

<?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:name="com.google.android.gms.maps.SupportMapFragment"
      android:layout_width="match_parent"
      android:layout_height="match_parent"/>

</RelativeLayout>

And this my activity code:

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.app.Activity;
import android.widget.Toast;


public class Mapa_MainActivity extends FragmentActivity {


   private GoogleMap map;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.mapa_activity_main);
       map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
               .getMap();
   }
}

And this log cat text for the exception:

04-19 18:51:35.817: E/AndroidRuntime(1482): FATAL EXCEPTION: main
04-19 18:51:35.817: E/AndroidRuntime(1482): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.solinpromex.vivegrancanaria/com.solinpromex.vivegrancanaria.Mapa_MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.os.Looper.loop(Looper.java:137)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.app.ActivityThread.main(ActivityThread.java:4745)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at java.lang.reflect.Method.invokeNative(Native Method)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at java.lang.reflect.Method.invoke(Method.java:511)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at dalvik.system.NativeStart.main(Native Method)
04-19 18:51:35.817: E/AndroidRuntime(1482): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:256)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.app.Activity.setContentView(Activity.java:1867)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.solinpromex.vivegrancanaria.Mapa_MainActivity.onCreate(Mapa_MainActivity.java:23)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.app.Activity.performCreate(Activity.java:5008)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
04-19 18:51:35.817: E/AndroidRuntime(1482):     ... 11 more
04-19 18:51:35.817: E/AndroidRuntime(1482): Caused by: java.lang.IllegalStateException: A required meta-data tag in your app's AndroidManifest.xml does not exist.  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" />
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.common.GooglePlayServicesUtil.t(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.maps.internal.q.B(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.maps.internal.q.A(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.maps.MapsInitializer.initialize(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.maps.SupportMapFragment$b.gW(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.maps.SupportMapFragment$b.a(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.dynamic.a.a(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.dynamic.a.onInflate(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:290)
04-19 18:51:35.817: E/AndroidRuntime(1482):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
04-19 18:51:35.817: E/AndroidRuntime(1482):     ... 21 more

What am I missing?

Was it helpful?

Solution

Replace

((MapFragment) getFragmentManager().findFragmentById(R.id.map))
               .getMap();

with

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

plz update your minimum version to 12 and

<meta-data android:name="com.google.android.maps.v2.API_KEY"
                android:value="key hidden"/>
should be inside application tag

OTHER TIPS

In the XML you are using SupportMapFragment

      android:name="com.google.android.gms.maps.SupportMapFragment"

hence you should use SupportMapFragment and getSupportFragmentManager instead of MapFragment and getFragmentManager

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

Change the above line to

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

I can see that you have android.support.v4.app.Fragment imported. Import com.google.android.gms.maps.SupportMapFragment

Also make sure that you have android.support.v4.jar in your libs folder and in the project build path.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top