Java Android proximityalert应用程序在按下按钮时崩溃

Java Android proximityalert应用程序在按下按钮时崩溃,java,android,crash,gps,proximity,Java,Android,Crash,Gps,Proximity,我正在尝试编写一个简单的应用程序,它将用户当前的位置记录下来,并在用户稍后靠近此位置时通知他们。在我的代码中,我对其进行了设置,以便当应用程序启动时,它开始请求位置更新。然后,当按下按钮时,它将获取最后一个已知位置,并在该位置周围创建一个接近警报。然而,我的问题是,当我按下模拟器和真实手机上的按钮时,它很快就会崩溃,我似乎找不到原因。是不是有一个无限的循环我是多么的缺失?如果有一种方法可以查看我手机上的错误信息,那也会非常有帮助 这是我的密码: MainActivity.java package

我正在尝试编写一个简单的应用程序,它将用户当前的位置记录下来,并在用户稍后靠近此位置时通知他们。在我的代码中,我对其进行了设置,以便当应用程序启动时,它开始请求位置更新。然后,当按下按钮时,它将获取最后一个已知位置,并在该位置周围创建一个接近警报。然而,我的问题是,当我按下模拟器和真实手机上的按钮时,它很快就会崩溃,我似乎找不到原因。是不是有一个无限的循环我是多么的缺失?如果有一种方法可以查看我手机上的错误信息,那也会非常有帮助

这是我的密码:

MainActivity.java

package com.YdidApplications.shotgun;

import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends Activity implements LocationListener
{
    private ImageButton flagButton;
    LocationManager lm;
    double lat=0,long1=0;    //Defining Latitude & Longitude
    float radius=5;                         //Defining Radius
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);  
        lm=(LocationManager) getSystemService(LOCATION_SERVICE);
        lm.requestLocationUpdates(lm.GPS_PROVIDER, 
                10000, //Update every 10 sec
                10, (LocationListener) this);
        flagButton = (ImageButton) findViewById(R.id.FLAG);
        onFlagPress();
    }
    public void onFlagPress()
    {
        flagButton.setOnClickListener(new OnClickListener() {  
             @Override  
             public void onClick(View v) {  
                 location();
             }  
        });  
    }
    public void location()
    {

        lm=(LocationManager) getSystemService(LOCATION_SERVICE);
        lm.getLastKnownLocation(LOCATION_SERVICE);
        Intent i= new Intent("com.adnan.proximityalert");           //Custom Action
        PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), -1, i, 0);
        lm.addProximityAlert(lat, long1, radius, -1, pi);
    }
    @Override
    public void onLocationChanged(Location location) {
        lat= location.getLatitude();
        long1 = location.getLongitude();
        Toast.makeText(null, lat+", "+long1, 0);
    }
    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }
    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }
    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

}
ProximityReciever.java

package ProximityReciever;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.location.LocationManager;
import android.widget.Toast;

/*This is the Reciever for the Brodcast sent, here our app will be notified if the User is 
* in the region specified by our proximity alert.You will have to register the reciever 
* with the same Intent you broadcasted in the previous Java file
* 
 * @Author: Adnan A M 
 */


public class ProximityReceiver extends BroadcastReceiver {

 @Override
 public void onReceive(Context arg0, Intent arg1) {
  // TODO Auto-generated method stub
  // The reciever gets the Context & the Intent that fired the broadcast as arg0 & agr1 

  String k=LocationManager.KEY_PROXIMITY_ENTERING;
 // Key for determining whether user is leaving or entering 

  boolean state=arg1.getBooleanExtra(k, false);
  //Gives whether the user is entering or leaving in boolean form

  if(state){
   // Call the Notification Service or anything else that you would like to do here
   Toast.makeText(arg0, "Welcome to my Area", 600).show();
  }else{
   //Other custom Notification 
   Toast.makeText(arg0, "Thank you for visiting my Area,come back again !!", 600).show();

  }

}


}
如有任何建议,将不胜感激

谢谢,
Logan

post activity_main.xml并stacktracepost您的logcat。bw为什么要在locationChanged Toast中传递null上下文?这可能是导致错误Toast.makeTextnull,lat+,+long1,0;谢谢kalyan pvs和sayed.jalil现在可以用了