单击下一个按钮时,android GPS第二活动错误

问题描述

|
enter code here
   05-30 22:54:51.245: ERROR/AndroidRuntime(1383): FATAL EXCEPTION: main
    05-30 22:54:51.245: ERROR/AndroidRuntime(1383): java.lang.IllegalStateException: Could not find a method appendText(View) in the activity class yaraby.y.yarab for onClick handler on view class android.widget.Button with id \'enter\'
    05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at android.view.View$1.onClick(View.java:2059)
   05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at android.view.View.performClick(View.java:2408)
  05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at android.view.View$PerformClick.run(View.java:8816)
  05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at android.os.Handler.handleCallback(Handler.java:587)
  05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at android.os.Handler.dispatchMessage(Handler.java:92)
 05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at android.os.Looper.loop(Looper.java:123)
 05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at android.app.ActivityThread.main(ActivityThread.java:4633)
 05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at java.lang.reflect.Method.invokeNative(Native Method)
 05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at java.lang.reflect.Method.invoke(Method.java:521)
05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at dalvik.system.NativeStart.main(Native Method)
05-30 22:54:51.245: ERROR/AndroidRuntime(1383): Caused by: java.lang.NoSuchMethodException: appendText
05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at java.lang.classCache.findMethodByName(ClassCache.java:308)
05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at java.lang.class.getmethod(Class.java:985)
 05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     at android.view.View$1.onClick(View.java:2052)
 05-30 22:54:51.245: ERROR/AndroidRuntime(1383):     ... 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{
            Intent i = new Intent(yaraby.this,yarab.class);
            startActivity(i);
            }
            catch(Error e){
                Log.e(\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",e.getMessage());
            }

        }});

                  }





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

  public class yarab extends MapActivity

            {
     Socket clientSocket;
      TextView Text; 
private MapView mapView;
private MapController mc;
     DataOutputStream outToServer;            
    BufferedReader inFromServer ;

int error = 50;
GeoPoint p,p2;
List<Overlay> mapOverlays;
Drawable drawable,drawable;
Helloitemizedoverlay itemizedoverlay,itemizedoverlay2;

LocationManager locationManager;

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

@Override
public void onCreate(Bundle savedInstanceState)

{
    try {
        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();
        // mapView.setStreetView(true);
        // mapView.setSatellite(true);
        mc.setZoom(12);
        addOverLays();
       } catch (Exception e) {
        Log.d(\"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\",e.getMessage());
    }

}


public void addOverLays() {
    String[] coordinates = { \"31.216487288475037\",\"29.932637214660645\",\"30.084123015403748\",\"51.5002\",\"-0.1262\",\"31.337149143218994\" };
    //lat10=29.97885355949402,lat11=29.98787991531372,lat12=29.98787991531372;

    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);
;
        itemizedoverlay17 = new Helloitemizedoverlay(drawable17,this);
        itemizedoverlay15 = new Helloitemizedoverlay(drawable15,this);
        itemizedoverlay16 = new Helloitemizedoverlay(drawable16,this);
    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);




}






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() ;// 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;
}

       }
这是mainfaist
enter code here
  <?xml version=\"1.0\" encoding=\"utf-8\"?>
<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\" />
<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\" />    

<application android:icon=\"@drawable/icon\" android:label=\"@string/app_name\">
    <activity android:name=\".yaraby\"
              android:label=\"@string/app_name\">
        <intent-filter>
            <action android:name=\"android.intent.action.MAIN\" />
            <category android:name=\"android.intent.category.LAUNCHER\" />
        </intent-filter>
    </activity>

<activity android:name=\".Mapy\"
              android:label=\"@string/app_name\">
        <intent-filter>
              <action android:name=\"android.intent.action.VIEW\" />
            <category android:name=\"android.intent.category.DEFAULT\" />
        </intent-filter>
    </activity>

<activity android:name=\".Helloitemizedoverlay\"
              android:label=\"@string/app_name\">
        <intent-filter>
           <action android:name=\"android.intent.action.VIEW\" />
            <category android:name=\"android.intent.category.DEFAULT\" />
        </intent-filter>
    </activity>
</application>
    

解决方法

        您的问题在
yarab.onCreate()
方法中:
   } catch (Exception e) {
    Log.d(\"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\",e.getMessage());
}
e.getMessage()
返回空,
Log.d
不喜欢空消息。尝试改用
e.toString()
。一些例外仅包含空消息。     ,        e.getMessage()返回null吗? 尝试:
...
} catch (Exception e) {
  e.printStackTrace();
}
在onCreate方法的最后(第105行)