2011-03-26 81 views
0

logcat的表示以下錯誤機器人的MapView

03-26 17:41:51.770: ERROR/AndroidRuntime(479): FATAL EXCEPTION: main 
03-26 17:41:51.770: ERROR/AndroidRuntime(479): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.sampled/com.sampled.main}: java.lang.ClassNotFoundException: com.sampled.main in loader dalvik.system.PathClassLoader[/data/app/com.sampled-2.apk] 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at android.os.Looper.loop(Looper.java:123) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at java.lang.reflect.Method.invoke(Method.java:521) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at dalvik.system.NativeStart.main(Native Method) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479): Caused by: java.lang.ClassNotFoundException: com.sampled.main in loader dalvik.system.PathClassLoader[/data/app/com.sampled-2.apk] 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
03-26 17:41:51.770: ERROR/AndroidRuntime(479):  ... 11 more 

我的代碼follwing

package com.sampled; 

import java.util.ArrayList; 
import java.util.List; 

import android.graphics.Canvas; 
import android.graphics.drawable.Drawable; 
import android.os.Bundle; 
import android.view.View; 

import com.google.android.maps.GeoPoint; 
import com.google.android.maps.ItemizedOverlay; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 
import com.google.android.maps.OverlayItem; 

public class main extends MapActivity { 
    private MapView mapView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mapView = (MapView) findViewById(R.id.mapview); 
     mapView.setBuiltInZoomControls(true); 
     mapView.setClickable(true); 
     Drawable marker=getResources().getDrawable(R.drawable.icon); 
     marker.setBounds(0, 0, marker.getIntrinsicWidth(),marker.getIntrinsicHeight()); 
     InterestingLocations funPlaces = new InterestingLocations(marker); 
     mapView.getOverlays().add(funPlaces); 
     GeoPoint pt = funPlaces.getCenter(); // get the first-ranked point 
     mapView.getController().setCenter(pt); 
     mapView.getController().setZoom(15); // cheating. We could iterate 
     // and figure out a proper zoom. 
    } 
    @Override 
    protected boolean isLocationDisplayed() { 
     return false; 
    } 
    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 
    public void myClickHandler(View target) { 
     switch(target.getId()) { 
     case R.id.sat: 
      mapView.setSatellite(true); 
      break; 
     case R.id.street: 
      mapView.setStreetView(true); 
      break; 
     case R.id.traffic: 
      mapView.setTraffic(true); 
      break; 
     case R.id.normal: 
      mapView.setSatellite(false); 
      mapView.setStreetView(false); 
      mapView.setTraffic(false); 
      break; 
     } 
    } 
    class InterestingLocations extends ItemizedOverlay { 
     private List<OverlayItem> locations = new ArrayList<OverlayItem>(); 
     private Drawable marker; 
     public InterestingLocations(Drawable marker) 
     { 
      super(marker); 
      this.marker=marker; 
      //5.34079, 100.28241 is IICP's lat and long 
      GeoPoint npark = new GeoPoint((int)(5.34079*1000000),(int)(100.28241*1000000)); 
      locations.add(new OverlayItem(npark , "IICP", "IICP")); 
      populate(); 
     } 
     @Override 
     public void draw(Canvas canvas, MapView mapView, boolean shadow) { 
      super.draw(canvas, mapView, shadow); 
      boundCenterBottom(marker); 
     } 
     @Override 
     protected OverlayItem createItem(int i) { 
      return locations.get(i); 
     } 
     @Override 
     public int size() { 
      return locations.size(); 
     } 
    } 
} 

清單

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

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".main" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
      <uses-library android:name="com.google.android.maps" /> 
     </activity> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 
    </application> 
</manifest> 

xml文件是

<?xml version="1.0" encoding="utf-8"?> 
<!-- This file is /res/layout/mapview.xml --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="horizontal" android:layout_width="fill_parent" 
     android:layout_height="wrap_content">  
     <Button android:id="@+id/sat" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:text="Satellite" 
      android:onClick="myClickHandler" android:padding="8px" /> 
     <Button android:id="@+id/street" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:text="Street" 
      android:onClick="myClickHandler" android:padding="8px" /> 
     <Button android:id="@+id/traffic" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:text="Traffic" 
      android:onClick="myClickHandler" android:padding="8px" /> 
     <Button android:id="@+id/normal" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:text="Normal" 
      android:onClick="myClickHandler" android:padding="8px" /> 
</LinearLayout> 
<com.google.android.maps.MapView 
     android:id="@+id/mapview" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:clickable="true" 
     android:apiKey="0hTcVSW3qp70ciSiaNSqesiGdbjEmewCc4FsHSA" /> 
</LinearLayout> 

回答

0

您是否嘗試過清潔項目?安靜幾次,我已經解決了這樣的錯誤,通過這樣做。不知道它爲什麼有效。

通過您的代碼看,沒有跳出我,但我可能錯過了一些東西

0

你叫你的類「主」。嘗試將其重命名爲其他內容,例如MyTestActivity或其他內容。就Android而言,我不確定'main'是否爲保留關鍵字,但它是用Java編寫的,並且保留用於方法調用,它是程序啓動時的訪問點。

0

我清理了項目並重新啓動了我的eclipse