两个活动的错误致命异常

时间:2011-05-30 22:54:49

标签: android

enter code here

  05-31 00:26:46.295: ERROR/AndroidRuntime(4111):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2685)
  05-31 00:32:08.465: ERROR/AndroidRuntime(4301): FATAL EXCEPTION: main
  05-31 00:32:08.465: ERROR/AndroidRuntime(4301): java.lang.RuntimeException: Unable to start activity ComponentInfo{yaraby.y/yaraby.y.yarab}: java.lang.NullPointerException
  05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2685)
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at a ndroid.app.ActivityThread.access$2300(ActivityThread.java:126)
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2038)
  05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at android.os.Handler.dispatchMessage(Handler.java:99)
  05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at android.os.Looper.loop(Looper.java:123)
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at android.app.ActivityThread.main(ActivityThread.java:4633)
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at java.lang.reflect.Method.invokeNative(Native Method)
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at java.lang.reflect.Method.invoke(Method.java:521)
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
  05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
  05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at dalvik.system.NativeStart.main(Native Method)
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301): Caused by: java.lang.NullPointerException
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at yaraby.y.yarab.onCreate(yarab.java:92)
 05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
  05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2633)
  05-31 00:32:08.465: ERROR/AndroidRuntime(4301):     ... 11 more

Yaraby Code

enter code here
 public class yaraby extends Activity {
/** Called when the activity is first created. */
String sentence,sentence1, modifiedSentence;;
EditText inputfld, txt;
TextView Text;
Button Enter, Connect, next;
Socket clientSocket;

DataOutputStream outToServer;
BufferedReader inFromServer ;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    inputfld=(EditText)findViewById(R.id.input);
    Text=(TextView)findViewById(R.id.view);
    Enter=(Button)findViewById(R.id.enter);
    Connect=(Button)findViewById(R.id.connect);

    Text.append( "\n about to create a socket");    


    txt=(EditText)findViewById(R.id.txt);
    next = (Button) findViewById(R.id.Button01);   

    next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            try{
                Text.append("PPPPP");
            Intent i = new Intent(yaraby.this, yarab.class);

            startActivity(i);
            Text.append("OPS");
            }
            catch(Error e){
                Log.e("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", e.getMessage());
                Text.append("ofa7ay");
            }

        }});

                  }






public void appendText(View view){
    Text.append( "\n  In chat ");

    try{


    sentence=inputfld.getText().toString();
    sentence1="ingyyyy";
    Text.append( "\n  DataStream creating");        
    outToServer.writeBytes(sentence);
    outToServer.writeBytes(sentence1);
    Thread.sleep(1000);
    modifiedSentence = inFromServer.readLine(); 
    Text.append(modifiedSentence);
    inputfld.setText(null);

    }
    catch(Exception modifiedsentence){
        Text.append("Exception");
    }


}


public void connect(View view){
    try{
        clientSocket= new Socket("192.168.1.6",54611); 
        Text.append( "\n created a socket");
        outToServer = new DataOutputStream(clientSocket.getOutputStream());
        Text.append( "\n created a datastream");
        inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
        Text.append( "\n created a bufferReader");
        outToServer = new DataOutputStream(clientSocket.getOutputStream());



    }catch(Exception e){
        System.out.println("Error");
    }
   }

yarab code

enter code here
package yaraby.y;

           public class yarab extends MapActivity

   {
Socket clientSocket;
TextView Text; 
private MapView mapView;
private MapController mc;
DataOutputStream outToServer;            
BufferedReader inFromServer ;
 Button start;
int error = 50;
GeoPoint p, p2;
List<Overlay> mapOverlays;
Drawable drawable, drawable2;
HelloItemizedOverlay itemizedOverlay, itemizedOverlay2;

LocationManager locationManager;

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState)

{

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        /* Use the LocationManager class to obtain GPS locations */

        LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        LocationListener mlocListener = new MyLocationListener();

        mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
                0, mlocListener);
        mapView = (MapView) findViewById(R.id.mapView);

        // enable Street view by default
        mapView.setStreetView(true);

        // enable to show Satellite view
        mapView.setSatellite(true);

        // enable to show Traffic on map
        // mapView.setTraffic(true);
        mapView.setBuiltInZoomControls(true);






        mc = mapView.getController();

        mc.setZoom(12);
        addOverLays();
          start= (Button) findViewById(R.id.start);   


                }

public void addOverLays() {
    String[] coordinates = { "31.216487288475037", "29.932637214660645",
            "30.084123015403748", "51.5002", "-0.1262",
            "31.337149143218994" };

    double lat = 29.98739718380868, lat2 = 29.987810254096985;
    double log = 31.442527770886084, log2 = 31.44258677959442;
    p = new GeoPoint((int) (lat * 1E6), (int) (log * 1E6));
    p2 = new GeoPoint((int) (lat2 * 1E6 ), (int) (log2 * 1E6 ));
    p3 = new GeoPoint((int) (lat3 * 1e6), (int) (log3 * 1e6));
    p4 = new GeoPoint((int) (lat4 * 1e6), (int) (log4 * 1e6));
    p5 = new GeoPoint((int) (lat14* 1e6), (int) (log14 * 1e6));
    p6 = new GeoPoint((int) (lat8 * 1e6), (int) (log8 * 1e6));
    p7 = new GeoPoint((int) (t1* 1e6), (int) (log15 * 1e6));
    p8 = new GeoPoint((int) (lat5 * 1e6), (int) (log5 * 1e6));
    p9 = new GeoPoint((int) (lat6 * 1e6), (int) (log6 * 1e6));
    p10=new GeoPoint( (int) (t4 * 1e6), (int) (log12 * 1e6));
    p11=new GeoPoint( (int) (t2* 1e6), (int) (log14 * 1e6));
    p12=new GeoPoint( (int) (t3* 1e6), (int) (log5 * 1e6));
    p13=new GeoPoint( (int) (t5* 1e6), (int) (log12 * 1e6));
    p14=new GeoPoint( (int) (t6* 1e6), (int) (log11 * 1e6));
    p15=new GeoPoint( (int) ((t6+t1)/2* 1e6), (int) (log3 * 1e6));
    p15=new GeoPoint( (int) (t3* 1e6), (int) (log11 * 1e6));
    p16=new GeoPoint( (int) (lat15* 1e6), (int) (log15 * 1e6));
    p17=new GeoPoint( (int) (lat13* 1e6), (int) (log13 * 1e6));
    p18=new GeoPoint( (int) (lat9* 1e6), (int) (log9 * 1e6));
    p19=new GeoPoint( (int) (lat10* 1e6), (int) (log10 * 1e6));
    p20=new GeoPoint( (int) (lat11* 1e6), (int) (log11 * 1e6));
    p21=new GeoPoint( (int) (lat12* 1e6), (int) (log12 * 1e6));
    mapOverlays = mapView.getOverlays();
    drawable = this.getResources().getDrawable(R.drawable.wit);
    drawable2 = this.getResources().getDrawable(R.drawable.ballon);

    itemizedOverlay = new HelloItemizedOverlay(drawable, this);
    itemizedOverlay2 = new HelloItemizedOverlay(drawable2, this);

    OverlayItem overlayitem = new OverlayItem(p, "Cairo", " over1");
    OverlayItem over2 = new OverlayItem(p2, "ulm", "over2");


    itemizedOverlay.addOverlay(overlayitem);

    mapOverlays.add(itemizedOverlay);

    itemizedOverlay2.addOverlay(over2);
    mapOverlays.add(itemizedOverlay2);


    mc.setZoom(17);



}





public void Location(){



    LocationManager myLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);


    LocationListener mlocListener1 = new MyLocationListener();

    LocationManager mlocManager1 = null;
    mlocManager1.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
            0, mlocListener1);
        //  Get the current location in start-up
          GeoPoint initGeoPoint = new GeoPoint((int)(myLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER)
       .getLatitude()*1000000),(int)(myLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER).getLongitude()*1000000));
       mc.animateTo(initGeoPoint);
    mc.setZoom(16);

    drawable21 = this.getResources().getDrawable(R.drawable.ggg);
    itemizedOverlay21 = new HelloItemizedOverlay(drawable21,this);
    OverlayItem over21 = new OverlayItem(initGeoPoint, "offff", "over21");

    itemizedOverlay21.addOverlay(over21);
    mapOverlays.add(itemizedOverlay21);
}


/* Class My Location Listener */

public class MyLocationListener implements LocationListener

{

    @Override
    public void onLocationChanged(Location loc)

    {

        GeoPoint point = new GeoPoint((int) (loc.getLatitude() * 1E6),
                (int) (loc.getLongitude() * 1E6));



        String Text = "My current location is: " +

        "Latitud =" + loc.getLatitude()+ 

        "Longitud =" +loc.getLongitude() ;

        Toast.makeText(getApplicationContext(),

        Text,

        Toast.LENGTH_SHORT).show();


    mc.animateTo(point);


    }


    private Resources getResources() {
        // TODO Auto-generated method stub
        return null;
    }


    public void onProviderDisabled(String provider)

    {

        Toast.makeText(getApplicationContext(),

        "Gps Disabled",

        Toast.LENGTH_SHORT).show();

    }

    public void onProviderEnabled(String provider)

    {

        Toast.makeText(getApplicationContext(),

        "Gps Enabled",

        Toast.LENGTH_SHORT).show();

    }

    public void onStatusChanged(String provider, int status, Bundle extras)

    {

    }

    protected boolean isRouteDisplayed() {
        return false;
    }

}/* End of Class MyLocationListener */

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

           }

1 个答案:

答案 0 :(得分:1)

NullPointerException方法中yarab.java的第92行有onCreate()。根据@dmon的评论,我的猜测是你加载了错误的布局,因此你检索MapView的尝试失败了。但是,这只是猜测,因为您没有告诉我们yarab.java的第92行实际上是什么。