0

I know this could trun out into a very stupid question, so please don't throw me off just by looking at the title. The weirdest thing is happening to me once i try to start a MapActivity extended class with my Android application.

I know there are lots of questoins on this, i did my research but most of them are focused on checking the names to correspond, none of them have worked for me.

Even though i updated my manifest the class is there i get a ClassNotFound exception...

Let me know what i am doing wrong please.

Android Manifest:

<activity
        android:name="ro.gebs.captoom.activities.LocationActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

LocationActivity class:

package ro.gebs.captoom.activities;

import android.os.Bundle;

import com.example.captoom.R;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;

public class LocationActivity extends MapActivity {

    MapView mapView = null;
    MyLocationOverlay myLocationOverlay = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // main.xml contains a MapView
        setContentView(R.layout.preview_location);

        // extract MapView from layout
        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        // create an overlay that shows our current location
        myLocationOverlay = new MyLocationOverlay(this, mapView);

        // add this overlay to the MapView and refresh it
        mapView.getOverlays().add(myLocationOverlay);
        mapView.postInvalidate();
    }

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

    @Override
    protected void onResume() {
        super.onResume();
        // when our activity resumes, we want to register for location updates
        myLocationOverlay.enableMyLocation();
    }

    @Override
    protected void onPause() {
        super.onPause();
        // when our activity pauses, we want to remove listening for location
        // updates
        myLocationOverlay.disableMyLocation();
    }
}

And the error log:

07-31 09:35:34.227: E/AndroidRuntime(14613): FATAL EXCEPTION: main
07-31 09:35:34.227: E/AndroidRuntime(14613): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.captoom/ro.gebs.captoom.activities.LocationActivity}: java.lang.ClassNotFoundException: ro.gebs.captoom.activities.LocationActivity
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2034)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.access$700(ActivityThread.java:140)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.os.Looper.loop(Looper.java:137)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.main(ActivityThread.java:4921)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at java.lang.reflect.Method.invokeNative(Native Method)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at java.lang.reflect.Method.invoke(Method.java:511)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at dalvik.system.NativeStart.main(Native Method)
07-31 09:35:34.227: E/AndroidRuntime(14613): Caused by: java.lang.ClassNotFoundException: ro.gebs.captoom.activities.LocationActivity
07-31 09:35:34.227: E/AndroidRuntime(14613):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
07-31 09:35:34.227: E/AndroidRuntime(14613):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2025)
07-31 09:35:34.227: E/AndroidRuntime(14613):    ... 11 more

Please note that my build also targets Google API platform if that makes a difference...

EDIT I excluded the google play services library i had also included in my project, the error log changes into this:

07-31 09:51:44.433: E/AndroidRuntime(14918): FATAL EXCEPTION: main
07-31 09:51:44.433: E/AndroidRuntime(14918): java.lang.NoClassDefFoundError: ro.gebs.captoom.activities.LocationActivity

Thanks!

Adrian Olar
  • 2,883
  • 4
  • 35
  • 63
  • Maybe a duplicate of: http://stackoverflow.com/questions/17273218/android-unable-to-instantiate-activity-didnt-find-class-on-path/17273328#17273328 ? – gunar Jul 31 '13 at 06:46
  • just clean your project try again! – Stack Overflow User Jul 31 '13 at 06:47
  • cleaned the project, no change. I tried also excluding the google services library which i had also included in my libs, the error log changes into this: `07-31 09:51:44.433: E/AndroidRuntime(14918): FATAL EXCEPTION: main 07-31 09:51:44.433: E/AndroidRuntime(14918): java.lang.NoClassDefFoundError: ro.gebs.captoom.activities.LocationActivity ` – Adrian Olar Jul 31 '13 at 06:54
  • The solution was adding the following line to my mainfest: `` – Adrian Olar Jul 31 '13 at 07:17

2 Answers2

1

Well MapActivity is no more used.. Try out this example.

Google Maps

Sagar Patil
  • 1,400
  • 15
  • 29
0

May be its a Build Path Configuration problem.I also faced the same problem once.I did the following to solve the issue.

1.Right click on your project and go to Java Build Path.

2.Click on Order and Export tab.

3.Check Android Private Libraries and other 3rd part libraries if you have added.

4.Press ok and clean the project.

I hope it will solve the issue.

Spring Breaker
  • 8,233
  • 3
  • 36
  • 60