-1

I am trying a tutorial from androidhive for google maps

The MainActivity.java is

package info.achuthan.googlemaps;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.SupportMapFragment;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Toast;

public class MainActivity extends Activity {

    // Google Map
    private GoogleMap googleMap;

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

        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 = ((MapFragment) getFragmentManager().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();
        initilizeMap();
    }

}

The xml file is:

<?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.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

The manifest is :

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

    <uses-sdk
        android:minSdkVersion="8"
        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" />

    <!-- Required OpenGL ES 2.0. for Maps V2 -->
    <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="info.achuthan.googlemaps.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>

    </application>
 <meta-data
     android:name="com.google.android.maps.v2.API_KEY"
     android:value="AIzaSyAS8r6-5qvtr3Jf3Ai457ZDu7sPpIHU7JY" />

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

The logcat is:

06-30 13:40:19.429: E/AndroidRuntime(6624): FATAL EXCEPTION: main
06-30 13:40:19.429: E/AndroidRuntime(6624): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.achuthan.googlemaps/info.achuthan.googlemaps.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.os.Looper.loop(Looper.java:130)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.app.ActivityThread.main(ActivityThread.java:3689)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at java.lang.reflect.Method.invokeNative(Native Method)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at java.lang.reflect.Method.invoke(Method.java:507)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at dalvik.system.NativeStart.main(Native Method)
06-30 13:40:19.429: E/AndroidRuntime(6624): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:209)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.app.Activity.setContentView(Activity.java:1657)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at info.achuthan.googlemaps.MainActivity.onCreate(MainActivity.java:19)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
06-30 13:40:19.429: E/AndroidRuntime(6624):     ... 11 more
06-30 13:40:19.429: E/AndroidRuntime(6624): Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLoader[/data/app/info.achuthan.googlemaps-1.apk]
06-30 13:40:19.429: E/AndroidRuntime(6624):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.view.LayoutInflater.createView(LayoutInflater.java:471)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:549)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66)
06-30 13:40:19.429: E/AndroidRuntime(6624):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
06-30 13:40:19.429: E/AndroidRuntime(6624):     ... 20 more

The application force closes with inflate exception.Please help me solve the problem.

  • possible duplicate of [android.view.inflateexception binary xml file line #6 error or inflating class fragment](http://stackoverflow.com/questions/24277103/android-view-inflateexception-binary-xml-file-line-6-error-or-inflating-class-f) – VenomVendor Jun 30 '14 at 08:22
  • the problem is,if you run this code on jellybean then it will be work.But for froyo you have to use support libraries or supportmapfragment – kgandroid Jun 30 '14 at 09:02

2 Answers2

0

Your class MainActivity should extend FragmentActivity or other class that extends fragmentactivity like ActionBarActivity. This will solve the inflate exception.

Also you are using min api level 8. For that you need to use SupportMapFragment and all related classes should come from the support package.

Illegal Argument
  • 10,090
  • 2
  • 44
  • 61
0

For your "android:minSdkVersion="8", you should use map xml as:

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

and mapapi kay meta-data should put inside :

... ...
<meta-data
 android:name="com.google.android.maps.v2.API_KEY"
 android:value="AIzaSyAS8r6-5qvtr3Jf3Ai457ZDu7sPpIHU7JY" />

</application>
Xcihnegn
  • 11,579
  • 10
  • 33
  • 33