2011-12-07 3 views
0

네이티브 Android 애플리케이션으로 인해 RuntimeException 문제가 해결 될 수 있도록 도움이 필요합니다. 이 예외의 원인을 정의 할 수 없습니다. 다음은 스택 추적 및 코드입니다. 여기에 무슨 문제가있는 것 같습니까?ActivityThread에서 Android 애플리케이션 RuntimeException이 소스를 찾지 못했습니다?

Thread [<1> main] (Suspended (exception RuntimeException)) 
    ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1879  
    ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1980 
    ActivityThread.access$600(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 122  
    ActivityThread$H.handleMessage(Message) line: 1146 
    ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
    Looper.loop() line: 137 
    ActivityThread.main(String[]) line: 4340  
    Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
    Method.invoke(Object, Object...) line: 511 
    ZygoteInit$MethodAndArgsCaller.run() line: 784 
    ZygoteInit.main(String[]) line: 551 
    NativeStart.main(String[]) line: not available [native method] 

코드

package com.example; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

import com.example.hellogooglemaps.R; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 

import com.google.android.maps.MapView.LayoutParams; 
import android.view.View; 
import android.widget.LinearLayout; 

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

import java.util.List; 

import com.google.android.maps.Overlay; 
import com.google.android.maps.MapView.LayoutParams; 

import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.Point; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.LinearLayout; 

import android.widget.Toast; 

public class HellogooglemapsActivity extends MapActivity { 
    MapView mapView; 
    MapController mc; 
    GeoPoint p,p2; 
    /** Called when the activity is first created. */ 
    @Override 

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

     mapView = (MapView) findViewById(R.id.mapview); 
     LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom); 
     View zoomView = mapView.getZoomControls(); 

     zoomLayout.addView(zoomView, 
      new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT)); 
     mapView.displayZoomControls(true); 

     mc = mapView.getController(); 
     String coordinates[] = {"59.3948", "24.662"}; 
     double lat = Double.parseDouble(coordinates[0]); 
     double lng = Double.parseDouble(coordinates[1]); 

     p = new GeoPoint(
      (int) (lat * 1E6), 
      (int) (lng * 1E6)); 

     MapOverlay mapOverlay = new MapOverlay(); 
     List<Overlay> listOfOverlays = mapView.getOverlays(); 
     listOfOverlays.clear(); 
     listOfOverlays.add(mapOverlay); 

     mc.animateTo(p); 
     mc.setZoom(14); 
     mapView.invalidate(); 

    } 
    class MapOverlay extends com.google.android.maps.Overlay { 
     @Override 
     public boolean draw(Canvas canvas, MapView mapView, 
     boolean shadow, long when) 
     { 
      super.draw(canvas, mapView, shadow);     

      //---translate the GeoPoint created in onCreate to screen pixels--- 
      Point screenPts = new Point(); 
      mapView.getProjection().toPixels(p, screenPts); 

      //---add the marker--- 
      Bitmap bmp = BitmapFactory.decodeResource(
       getResources(), R.drawable.map_marker);    
      canvas.drawBitmap(bmp, screenPts.x-15, screenPts.y-32, null);  

      // add a new marker to coords given below 
      String coordinates[] = {"59.40", "24.80"}; 
      double lat = Double.parseDouble(coordinates[0]); 
      double lng = Double.parseDouble(coordinates[1]); 
      p2 = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); 
      Point screenPts2 = new Point(); 
      mapView.getProjection().toPixels(p2, screenPts2);    
      canvas.drawBitmap(bmp, screenPts2.x-15, screenPts2.y-32, null); 

      Toast.makeText(getBaseContext(), 
        p2.getLatitudeE6()/1E6 + "," + 
        p2.getLongitudeE6() /1E6 , 
        Toast.LENGTH_SHORT).show(); 

      return true; 
     } 
} 
    @Override 
    protected boolean isRouteDisplayed() { 
     // TODO Auto-generated method stub 
     return false; 
    } 
} 

AVD : 구글의 API (14)

+0

입니다 전체 예외인가? 예외에 붙여 넣은 코드는 표시되지 않습니다. – Gray

답변

1

예외 스택 추적 + 메시지는 일반적으로 로그 캣에 그대로 조금 더 인쇄됩니다. 스택 추적의 첫 번째 행은 시스템이 Instrumentation.newActivity (ClassLoader, String, Intent)를 호출 할 때 activity 객체를 인스턴스화 할 수 없음을 나타냅니다. 로그 캣, 당신은 같은 것을 찾을 수 있어야합니다. : < 메시지 > 당신이 꽤 관심이 뭔가 "활동 < 구성 요소 >를 인스턴스화 할 수 없습니다 < 메시지 >를"

관련 문제