2011-05-30 116 views
0

當我點擊下一個按鈕時,它強制關閉;開始第二個活動時出錯

05-30 23:46:21.595: VERBOSE/AudioHardwareMSM72XX(95): open driver 
     05-30 23:46:21.775: ERROR/AndroidRuntime(3401): FATAL EXCEPTION: main 
05-30 23:46:21.775: ERROR/AndroidRuntime(3401): java.lang.RuntimeException: Unable to start activity ComponentInfo{yaraby.y/yaraby.y.yarab}: java.lang.NullPointerException 
05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669) 
05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2685) 
05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at android.app.ActivityThread.access$2300(ActivityThread.java:126) 
05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2038) 
    05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at android.os.Looper.loop(Looper.java:123) 
05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at android.app.ActivityThread.main(ActivityThread.java:4633) 
05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at java.lang.reflect.Method.invoke(Method.java:521) 
    05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at co m.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
    05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at dalvik.system.NativeStart.main(Native Method) 
    05-30 23:46:21.775: ERROR/AndroidRuntime(3401): Caused by: java.lang.NullPointerException 
    05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at yaraby.y.yarab.onCreate(yarab.java:92) 
    05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
    05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2633) 
    05-30 23:46:21.775: ERROR/AndroidRuntime(3401):  ... 11 more 

Yaraby代碼

 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); 
//  yaraby x=new yaraby(); 
     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{ 
    // while (true) 
     //{ 

     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); 
     //if(modifiedSentence.equals("QUIT")) 
     //break; 
    // } 
     } 
     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代碼

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); 
     // start=(Button)findViewById(R.id.start); 





      mc = mapView.getController(); 
      // mapView.setStreetView(true); 
      // mapView.setSatellite(true); 
      mc.setZoom(12); 
      addOverLays(); 
//   start= (Button) findViewById(R.id.start); 

       start.setOnClickListener(new OnClickListener() { 

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

         startActivity(i); 
         Text.append("OwwwwPS"); 
         } 
         catch(Error e){ 
          e.setStackTrace(null); 
         } 

        }}); 

           } 








    public void addOverLays() { 
     String[] coordinates = { "31.216487288475037", "29.932637214660645", 
       "30.084123015403748", "51.5002", "-0.1262";} 
     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)); 

     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); 
    // mc.animateTo(p19); 


    } 






    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() ;// loc.getLongitude() ; //loc.getLatitude()+"anoog" + (p3.getLatitudeE6() - error) 

      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; 
    } 

      } 
+0

請下次嘗試發佈您的代碼的相關部分。它會幫助很多其他人更好地瞭解問題的出處 – 2011-05-30 22:18:37

+0

什麼是線路號碼。 92在你的亞拉比班? – stk 2011-05-30 22:46:51

+0

指定亞拉布班的第92行。是具體的PLZ .. – Mathew 2011-05-31 05:35:05

回答

0

<application>標籤。有關AndroidManifest.xml結構的詳細說明,請參閱here


<manifest ...> 
    <application ...> 
     <activity ... > 
     ... 
     </activity> 
     ... 
     <uses-library android:name="com.google.android.maps" /> 
    </application> 
</manifest> 
+0

在我的應用程序中的地方不同,它應該在哪裏? – hohi 2011-05-30 21:33:34

+0

更新了答案 – inazaruk 2011-05-30 21:35:50

+0

但是如果強行關閉你能否有時間解決我的代碼問題很容易因爲這個問題已經完成之前 – hohi 2011-05-30 21:37:20

0

yarab

1)start按鈕永遠不會初始化,您嘗試設置一個監聽器爲它。這將導致一個nullPointer。你在它上面有一條評論線 - 將初始化它,但我不知道你爲什麼評論它。

2)即使是那個固定的,在這個監聽器裏面,你試着追加到Text,這個再次沒有被初始化。您可以在yaraby類中初始化Text,但請記住它們是不同的變量。

這些只是我注意到的問題。我的建議?嘗試熟悉日誌。你的logcat說你有一個由yarab.java中的第92行引起的nullPointerException,但是你沒有提及哪一行,這會非常有幫助。

相關問題