错误发生在两个活动上的致命异常

问题描述

|
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
亚拉比码
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\");
    }
   }
亚拉码
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,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,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;
}

           }
    

解决方法

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