Zoel Kifly
Zoel Kifly

Reputation: 11

error application when show map

I'm new to android

I'm trying make a simple app in android with google map, but when I run it in emulator look error

The Application MapGoogle (process com.jol.android.Mapgoogle) has stopped unexpectedly. Please try again.

This is my GoogleMap.java

package com.jol.android.Mapgoogle;

    import android.content.Context;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.os.Bundle;
    import android.widget.RelativeLayout;

    import com.google.android.maps.GeoPoint;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapController;
    import com.google.android.maps.MapView;

    public class Googlemaps extends MapActivity {

    private MapController mapController;
    private MapView mapView;
    private LocationManager locationManager;

    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.main); // bind the layout to the activity

        // create a map view
        RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.mapview);
        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
        mapView.setStreetView(true);
        mapController = mapView.getController();
        mapController.setZoom(14); // Zoon 1 is world view
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new GeoUpdateHandler());
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }

    public class GeoUpdateHandler implements LocationListener {

        @Override
        public void onLocationChanged(Location location) {
            int lat = (int) (location.getLatitude() * 1E6);
            int lng = (int) (location.getLongitude() * 1E6);
            GeoPoint point = new GeoPoint(lat, lng);
            mapController.animateTo(point); //    mapController.setCenter(point);
        }

        @Override
        public void onProviderDisabled(String provider) {
        }

        @Override
        public void onProviderEnabled(String provider) {
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }
    }
}

and this is my manifest

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

    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name" >

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

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

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

    </application>
    <uses-sdk android:minSdkVersion="9" />
</manifest> 

This my main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <com.google.android.maps.MapView
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true"
        android:apiKey="0Qe1BE05sZZFeWkfqemBVn-tw_Y_Kc9E40HpY-w" />
</RelativeLayout>

But when I run this program I got this error

The Application MapGoogle (process com.jol.android.Mapgoogle) has stopped unexpectedly. Please try again.

Why like this? Please help me. Thank you, mate.

Upvotes: 0

Views: 133

Answers (4)

NagarjunaReddy
NagarjunaReddy

Reputation: 8645

Put this in the manifest:

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

Upvotes: 0

Shruti
Shruti

Reputation: 5591

You need to add following tag in your manifest file

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

Upvotes: 0

Nitesh Khosla
Nitesh Khosla

Reputation: 875

Try this

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

mobiForge: Using Google Maps in Android

Upvotes: 1

NickT
NickT

Reputation: 23873

You have several problems, the main one being the line:

   RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.mapview);

It's an illegal cast and it does nothing - get rid of it!

As a matter of style your package should be all lower case, make it

package com.jol.android.mapgoogle;

Make sure you compilation unit is called Googlemaps.java and that it matches the class name.

As other posters have pointed out, you need certain permissions in the manifest. This manifest should work and match the other changes I have mentioned.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.jol.android.mapgoogle"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-sdk android:minSdkVersion="9" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".Googlemaps"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <uses-library
            android:name="com.google.android.maps"
            android:required="true" >
        </uses-library>
    </application>

</manifest>

.

Upvotes: 0

Related Questions