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

时间:2011-05-30 18:40:54

标签: android

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

Yaraby班

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

       }

这里是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>

2 个答案:

答案 0 :(得分:1)

e.getMessage()是否返回null?

尝试:

...
} catch (Exception e) {
  e.printStackTrace();
}

在onCreate方法的末尾(第105行)

答案 1 :(得分:0)

您的问题出现在yarab.onCreate()方法中:

   } catch (Exception e) {
    Log.d("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", e.getMessage());
}

e.getMessage()返回null,Log.d不喜欢null消息。请尝试使用e.toString()。有些例外只有空消息。