-1

I am new in android and I am getting an error whcih says me can not inflate the view fragment_map in MapaFragment class, then application stops. I am using KitKat api 19.

I bring one day with it and I dont understand why the application in android stop giving an error in locat wich can not inflate the view.

I am using Google Maps v2 API.

MainActivity.java is:

package info.android;

import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;

public class MainActivity extends FragmentActivity  {
    private DrawerLayout mDrawerLayout;
    private ListView mDrawerList;
    private ActionBarDrawerToggle mDrawerToggle;

    // nav drawer title
    private CharSequence mDrawerTitle;

    // used to store app title
    private CharSequence mTitle;

    // slide menu items
    private String[] navMenuTitles;
    private TypedArray navMenuIcons;

    private ArrayList<NavDrawerItem> navDrawerItems;
    private NavDrawerListAdapter adapter;

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

        Fragment fragment = (Fragment) new MapaFragment();

        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

        ft.replace(R.id.frame_container, fragment);

        ft.commit();

    }
}

MapaFragment.java is:

package info.android;

import java.util.List;

import info.android.R.id;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.*;

public class MapaFragment extends Fragment {    
public MapaFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_map, container, false);

    ...

    return v;
}

}

fragment_map.xml is:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >

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

</LinearLayout>

My AndroidManifest is:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="info.android"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <permission
        android:name="info.android.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="info.android.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

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

        <uses-library android:name="com.google.android.maps" />



        <activity
            android:name="info.android.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.maps.v2.API_KEY"
            android:value="AIzaSyDVAF4WaVSVRDKJx87It8OSFP5txQcPabc" />
    </application>

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

</manifest>

the fragment inside the layout fragment_map.xml, when I take out, this code is working with no problem. but when I add the fragment to draw the google map is when it is giving me problems.

The error list in locat is:

05-18 23:41:10.906: W/dalvikvm(25636): threadid=1: thread exiting with uncaught exception (group=0x4159ad88)
05-18 23:41:10.916: E/AndroidRuntime(25636): FATAL EXCEPTION: main
05-18 23:41:10.916: E/AndroidRuntime(25636): Process: info.android, PID: 25636
05-18 23:41:10.916: E/AndroidRuntime(25636): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.android/info.android.MainActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class fragment
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2248)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2298)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.ActivityThread.access$800(ActivityThread.java:144)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.os.Handler.dispatchMessage(Handler.java:102)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.os.Looper.loop(Looper.java:212)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.ActivityThread.main(ActivityThread.java:5151)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at java.lang.reflect.Method.invokeNative(Native Method)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at java.lang.reflect.Method.invoke(Method.java:515)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:877)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at dalvik.system.NativeStart.main(Native Method)
05-18 23:41:10.916: E/AndroidRuntime(25636): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class fragment
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at info.android.MapaFragment.onCreateView(MapaFragment.java:20)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:570)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.Activity.performStart(Activity.java:5241)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2221)
05-18 23:41:10.916: E/AndroidRuntime(25636):    ... 11 more
05-18 23:41:10.916: E/AndroidRuntime(25636): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.SupportMapFragment: make sure class name exists, is public, and has an empty constructor that is public
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.Fragment.instantiate(Fragment.java:597)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.Fragment.instantiate(Fragment.java:561)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.Activity.onCreateView(Activity.java:4778)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
05-18 23:41:10.916: E/AndroidRuntime(25636):    ... 24 more
05-18 23:41:10.916: E/AndroidRuntime(25636): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.SupportMapFragment" on path: DexPathList[[zip file "/system/framework/com.google.android.maps.jar", zip file "/data/app/info.android-1.apk"],nativeLibraryDirectories=[/data/app-lib/info.android-1, /vendor/lib, /system/lib]]
05-18 23:41:10.916: E/AndroidRuntime(25636):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
05-18 23:41:10.916: E/AndroidRuntime(25636):    at android.app.Fragment.instantiate(Fragment.java:583)

What is wrong?

I add the image I attached my library zone in the project correctly the still. I changed the version of Android to 4.0.3

enter image description here

Dave
  • 7,028
  • 11
  • 35
  • 58

2 Answers2

0

The problem is that your are trying to access the Map Fragment from the google service which is not there..

Make sure that you added the library of the google service to your application

and also after that is clean and build

Rod_Algonquin
  • 26,074
  • 6
  • 52
  • 63
  • I added an image of the library section, I think I have it correctly installed. Still same error. – Dave May 19 '14 at 16:57
0

I got the solution after fighting during two days, I got to resolve the problem, first I did it is to put next lines in AndroidManifest.xml after the key next line:

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

and I deleted uses-library (not compatible with google Maps Api V2.

Dave
  • 7,028
  • 11
  • 35
  • 58