3

So after going through about 15 different stack overflow questions on the same error, I have another question about the unable to start activity ComponentInfo.

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


    <permission
        android:name="com.example.hauntingongrounds.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />
    <uses-permission android:name="com.example.hauntingongrounds.permission.MAPS_RECEIVE" />

    <uses-sdk
        android:minSdkVersion="12"
        android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- Required to show current location -->
    <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.example.hauntingongrounds.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>
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="AIzaSyAI********************-EhL8Ys" />
    </application>

</manifest>

Above is the Manifest. Below are the XML and the Main Activity.

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.SupportMapFragment;

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

public class MainActivity extends FragmentActivity {

    // Google Map
    private GoogleMap googleMap;

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

        try {
            // Loading map
            initializeMap();

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

    }

    /**
     * function to load map. If map is not created it will create it for you
     * */
    private void initializeMap() {
        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();
            }
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        initializeMap();
    }

}

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

</RelativeLayout>

Finally the LogCat

11-24 14:30:44.293: E/AndroidRuntime(17980): FATAL EXCEPTION: main
11-24 14:30:44.293: E/AndroidRuntime(17980): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hauntingongrounds/com.example.hauntingongrounds.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.os.Looper.loop(Looper.java:137)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.app.ActivityThread.main(ActivityThread.java:5041)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at java.lang.reflect.Method.invokeNative(Native Method)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at java.lang.reflect.Method.invoke(Method.java:511)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at dalvik.system.NativeStart.main(Native Method)
11-24 14:30:44.293: E/AndroidRuntime(17980): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.app.Activity.setContentView(Activity.java:1881)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.example.hauntingongrounds.MainActivity.onCreate(MainActivity.java:21)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.app.Activity.performCreate(Activity.java:5104)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
11-24 14:30:44.293: E/AndroidRuntime(17980):    ... 11 more
11-24 14:30:44.293: E/AndroidRuntime(17980): 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" />
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.common.GooglePlayServicesUtil.n(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.maps.internal.q.v(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.maps.internal.q.u(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.maps.MapsInitializer.initialize(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.maps.SupportMapFragment$b.cE(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.maps.SupportMapFragment$b.a(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.dynamic.a.a(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.dynamic.a.onInflate(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:290)
11-24 14:30:44.293: E/AndroidRuntime(17980):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
Blo
  • 11,903
  • 5
  • 45
  • 99
user3027873
  • 33
  • 1
  • 1
  • 4
  • Have you read your stacktrace? `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 element: ` – MaciejGórski Nov 24 '13 at 18:44
  • So I'm editing it to show the new code after I fixed it and new log trace. – user3027873 Nov 24 '13 at 19:34

2 Answers2

7

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 need to add this on your manifest

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
gian1200
  • 3,670
  • 2
  • 30
  • 59
0

First, try to change:

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

by:

class="com.google.android.gms.maps.SupportMapFragment"  

And you're wrong when you try to getMap() with MapFragment.

Android SupportMapFragment class needs to call getSupportFragmentManager() method. so you have to do SupportMapFragment, as you mention in your layout, like this way:

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

Let me know if your problem will be resolved.
For more information, see this tutorial: Android SupportMapFragment Example


Maybe your problem it's in your API key. To resolve it:

See this one: https://stackoverflow.com/a/19828366/2668136


And try to add this in your manifest:

This: https://stackoverflow.com/a/19744484/2668136

Community
  • 1
  • 1
Blo
  • 11,903
  • 5
  • 45
  • 99
  • So I tried what you said and I got the same error same line. I had to change the parent class to FragmentActivity instead of just Activity. – user3027873 Nov 24 '13 at 19:33
  • Did you add `Google Play Services` as your project's library? See how do it here: http://developer.android.com/google/play-services/setup.html#Install – Blo Nov 24 '13 at 19:42
  • Already did that. I've checked all the libraries and jars. Its all been imported. – user3027873 Nov 24 '13 at 19:57