2012-05-30 36 views
0

我正在寫一個調用另一個類的應用程序,但每次我都會收到「無法啓動活動componentinfo」錯誤。Android在調用另一個類時無法啓動activity componentinfo錯誤

的代碼如下:

package android.Maps; 


public class HomeScreen extends MapActivity { 
    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 

    MapController mapController; 
    MyPositionOverlay positionOverlay; 

    GeneticAlgorithm2 GA2; 
    //private MyPositionOverlay popListHome; 
    //public static int populationSizeHome; 



    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //popListHome = new MyPositionOverlay(null, null); 

     //populationSizeHome = popListHome.overlayItemList(); 

     //positionOverlay.overlayItemList 


     MapView myMapView = (MapView)findViewById(R.id.myMapView); 
     //myMapView.setBuiltInZoomControls(true); 
     mapController = myMapView.getController(); 

     myMapView.setSatellite(true); 
     myMapView.setStreetView(true); 
     myMapView.displayZoomControls(false); 

     mapController.setZoom(17); 

     Drawable marker=getResources().getDrawable(android.R.drawable.star_big_on); 
     int markerWidth = marker.getIntrinsicWidth(); 
     int markerHeight = marker.getIntrinsicHeight(); 
     marker.setBounds(0, markerHeight, markerWidth, 0); 

     //Call Genetic Algorithm 
     GA2 = new GeneticAlgorithm2(); 


     // Add the MyPositionOverlay 
     positionOverlay = new MyPositionOverlay(marker, HomeScreen.this); 
     List<Overlay> overlays = myMapView.getOverlays(); 
     overlays.add(positionOverlay); 

     LocationManager locationManager; 
     String context = Context.LOCATION_SERVICE; 
     locationManager = (LocationManager)getSystemService(context); 

     Criteria criteria = new Criteria(); 
     criteria.setAccuracy(Criteria.ACCURACY_FINE); 
     criteria.setAltitudeRequired(false); 
     criteria.setBearingRequired(false); 
     criteria.setCostAllowed(true); 
     criteria.setPowerRequirement(Criteria.POWER_LOW); 
     String provider = locationManager.getBestProvider(criteria, true); 

     Location location = locationManager.getLastKnownLocation(provider); 

     updateWithNewLocation(location); 

     locationManager.requestLocationUpdates(provider, 2000, 10, 
       locationListener); 


     //GeneticAlgorithm2 GA2 = new GeneticAlgorithm2(); 

     final Button buttonRun = (Button) findViewById(R.id.btnRun); 
     buttonRun.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Context context = getApplicationContext(); 
       CharSequence text = "Running"; 
       int duration = Toast.LENGTH_SHORT; 

       Toast toast = Toast.makeText(context, text, duration); 
       toast.show(); 



       //This statement works 
       System.out.println(positionOverlay.overlayItemList.size()); 

       Iterator<OverlayItem> iter = positionOverlay.overlayItemList.iterator(); 
       System.out.println(positionOverlay.overlayItemList); 
       while (iter.hasNext()){ 
        Object element = iter.next(); 
        System.out.println(element + ""); 
       } 

       //GeneticAlgorithm2 GA2; 
       //GA2.start(); 
       GA2.test(); 



      }// End of onClick 
     }); 

    }// End of onCreate 

    /*public HomeScreen(){ 
     popListHome = new MyPositionOverlay(null, null); 

     populationSizeHome = popListHome.overlayItemList(); 


    }*/ 

    private final LocationListener locationListener = new LocationListener() { 
     public void onLocationChanged(Location location) { 
      updateWithNewLocation(location); 
     } 

     public void onProviderDisabled(String provider){ 
      updateWithNewLocation(null); 
     } 

     public void onProviderEnabled(String provider){ } 
     public void onStatusChanged(String provider, int status, 
       Bundle extras){ } 
    }; 

    private void updateWithNewLocation(Location location) { 
     String latLongString; 
     TextView myLocationText; 
     myLocationText = (TextView)findViewById(R.id.myLocationText); 
     String addressString = "No address found"; 

     if (location != null) { 
      // Update my location marker 
      positionOverlay.setLocation(location); 

      // Update the map location. 
      Double geoLat = location.getLatitude()*1E6; 
      Double geoLng = location.getLongitude()*1E6; 
      GeoPoint point = new GeoPoint(geoLat.intValue(), 
        geoLng.intValue()); 

      mapController.animateTo(point); 

      double lat = location.getLatitude(); 
      double lng = location.getLongitude(); 
      latLongString = "Lat:" + lat + "\nLong:" + lng; 

      double latitude = location.getLatitude(); 
      double longitude = location.getLongitude(); 

      Geocoder gc = new Geocoder(this, Locale.getDefault()); 
      try { 
       List<Address> addresses = gc.getFromLocation(latitude, 
         longitude, 1); 
       StringBuilder sb = new StringBuilder(); 
       if (addresses.size() > 0) { 
        Address address = addresses.get(0); 

        for (int i = 0; i < address.getMaxAddressLineIndex(); i++) 
         sb.append(address.getAddressLine(i)).append("\n"); 

        sb.append(address.getLocality()).append("\n"); 
        sb.append(address.getPostalCode()).append("\n"); 
        sb.append(address.getCountryName()); 
       } 
       addressString = sb.toString(); 
      } catch (IOException e) {} 
     } else { 
      latLongString = "No location found"; 
     } 
     myLocationText.setText("Your Current Position is:\n" + 
       latLongString + "\n" + addressString); 
    } 




} 

,並從這個類即時試圖調用這個類:

package android.Maps; 


public class GeneticAlgorithm2 { 

    public static int populationSize; 
    private MyPositionOverlay popList; 

    public int route[] = new int[populationSize +1]; 
    int pointLimit; 
    int iterations; 
    double mutationRate = 0.10; 

    //Canvas C = null; 
    //Dimension CD; 
    //Label L; 
    //Graphics GC; 
    //int Initial_population = 800; 
    int matingPopulation = populationSize/2; 
    int favPopulation = matingPopulation/2; 
    int numOfCities = 30; 
    int cutLength = numOfCities/5; 
    //double Mutation_probability = 0.10; 

    double loops=1.5; 
    int Epoch; 
    double xlow = 0.0; 
    double ylow = 0.0; 
    double xhigh = 100.0; 
    double yhigh = 100.0; 
    double xrange, yrange; 
    double minCost = 5.0; 
    double timeStart,timeEnd; 
    Thread T = null; 
    double costPerfect = 0.; 

    boolean started = false; 

    City [] cities; 
    Chromosome [] chromosomes; 







    public GeneticAlgorithm2() { 

     // Calling My Position Overlay class 
     popList = new MyPositionOverlay(null, null); 

     //Sets the population size to the number of markers 
     populationSize = popList.overlayItemList.size(); 
     //start(); 
     test(); 

    } 



    public void test(){ 
     System.out.println("test"); 
    } 




}//End of Genetic Algorithm 2 class 

請幫助

修訂版*

05-30 15 :33:33.161:E/AndroidRuntime(916):致命例外:main 05-30 15:33: 33.161:E/AndroidRuntime(916):java.lang.RuntimeException:無法啓動活動ComponentInfo {android.Maps.Google2/android.Maps.HomeScreen}:java.lang.NullPointerException 05-30 15:33:33.161:E/AndroidRuntime(916):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java :2679) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.app.ActivityThread.access $ 2300(ActivityThread.java:125) 05-30 15:33:33.161:E/AndroidRuntime 916):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.os.Handler.dispatchMessage(Handler.java: 99) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.os.Looper.loop (Looper.java:123) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.app.ActivityThread.main(ActivityThread.java:4627) 05-30 15:33:33.161:E/AndroidRuntime(916):at java.lang.reflect.Method.invokeNative(Native Method) 05-30 15:33:33.161:E/AndroidRuntime(916):at java.lang.reflect.Method.invoke(Method。 java:521) 05-30 15:33:33.161:E/AndroidRuntime(916):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868) 05-30 15:33: 33.161:E/AndroidRuntime(916):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 05-30 15:33:33.161:E/AndroidRuntime(916):at dalvik.system。 NativeStart.main(本地方法) 05-30 15:33:33.161:E/AndroidRuntime(916):引起:java.lang.NullPointerException 05-30 15:33:33.161 :E/AndroidRuntime(916):at com.google.android.maps.ItemizedOverlay.boundCenterBottom(ItemizedOverlay.java:158) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.Maps.MyPositionOverlay 。(MyPositionOverlay.java:28) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.Maps.GeneticAlgorithm2。(GeneticAlgorithm2.java:51) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.Maps.HomeScreen.onCreate(HomeScreen.java:76) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java :1047) 05-30 15:33:33.161:E/AndroidRuntime(916):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 05-30 15:33:33.161:E/AndroidRuntime(916) ):... 11更多

+2

請向我們展示完整的堆棧跟蹤。並請刪除一些代碼。發佈數百個LoC將無濟於事。 – WarrenFaith

+0

stacktrace請! :) –

+0

對不起,過量的LoC。 – MurphyApps

回答

0

在我看起來像NullPointerException在你的代碼不是代碼片段的一部分。

05-30 15:33:33.161:E/AndroidRuntime(916):顯示java.lang.NullPointerException

05-30 15:33:33.161:致E/AndroidRuntime(916):在com.google.android.maps.ItemizedOverlay.boundCenterBottom(ItemizedOverlay。java:158)

相關問題