首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.IllegalStateException:无法执行活动的方法

java.lang.IllegalStateException:无法执行活动的方法
EN

Stack Overflow用户
提问于 2016-04-29 11:23:42
回答 2查看 372关注 0票数 0

在开发过程中,也有过类似的问题,也是因为我是个新手,不知道怎么处理,谢谢事先帮忙的人!我试着改变一些东西来重写,其他的都失败了,我不知道在什么时候我做错了什么。

活动

代码语言:javascript
复制
public class FormActivity extends AppCompatActivity {
    private LocationManager locationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.form);
        ///=================================
        /////Автоматическийм расчет веремени
        EditText et1 = (EditText) findViewById(R.id.formtime);
        EditText et2 = (EditText) findViewById(R.id.formdate);
        SimpleDateFormat df1 = new SimpleDateFormat("HH:mm:ss");
        SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd ");
        Calendar c = Calendar.getInstance();
        String e1 = df1.format(c.getTime());
        String e2 = df2.format(c.getTime());
        et1.setText(e1);
        et2.setText(e2);
        /////Конец расчета времени
    }

    public void GeoClick(View v){
        String svcName = Context.LOCATION_SERVICE;
        locationManager = (LocationManager)getSystemService(svcName);

        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setSpeedRequired(false);
        criteria.setCostAllowed(true);

        String provider = locationManager.getBestProvider(criteria, true);
        Location l = locationManager.getLastKnownLocation(provider);
        updateWithNewLocation(l);
        locationManager.requestLocationUpdates(provider, 5000, 10, locationListener);
    }

    private void updateWithNewLocation(Location location) {
        TextView myLocationText;
        myLocationText = (TextView)findViewById(R.id.myLocationText);

        String latLongString = "No location found";
        String addressString = "No address found";

        if (location != null) {
            double lat = location.getLatitude();
            double lng = location.getLongitude();
            latLongString = "Lat:" + lat + "\nLong:" + lng;

            double latitude = location.getLatitude();
            double longitude = location.getLongitude();
            Geocoder gc = new Geocoder(this, Locale.getDefault());

            try {
                List<Address> addresses = gc.getFromLocation(latitude, longitude, 1);
                StringBuilder sb = new StringBuilder();
                if (addresses.size() > 0) {
                    Address address = addresses.get(0);

                    for (int i = 0; i < address.getMaxAddressLineIndex(); i++)
                        sb.append(address.getAddressLine(i)).append("\n");

                    sb.append(address.getLocality()).append("\n");
                    sb.append(address.getPostalCode()).append("\n");
                    sb.append(address.getCountryName());
                }
                addressString = sb.toString();
            } catch (IOException e) {}
        }
        myLocationText.setText("Your Current Position is:\n" +
                latLongString + "\n\n" + addressString);
    }

    private final LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {updateWithNewLocation(location);}
        public void onProviderDisabled(String provider) {}
        public void onProviderEnabled(String provider) {}
        public void onStatusChanged(String provider, int status,
                                    Bundle extras) {}
    };
}

错误

代码语言:javascript
复制
 {FATAL EXCEPTION: main                                                                  java.lang.IllegalStateException: Could not execute method of the activity
 at android.view.View$1.onClick(View.java:3591)
 at android.view.View.performClick(View.java:4084)
 at android.view.View$PerformClick.run(View.java:16966)
 at android.os.Handler.handleCallback(Handler.java:615)
 at android.os.Handler.dispatchMessage(Handler.java:92)
 at android.os.Looper.loop(Looper.java:137)
 at android.app.ActivityThread.main(ActivityThread.java:4745)
 at java.lang.reflect.Method.invokeNative(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:511)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
 at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.reflect.InvocationTargetException
 at java.lang.reflect.Method.invokeNative(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:511)
 at android.view.View$1.onClick(View.java:3586)
 at android.view.View.performClick(View.java:4084) 
 at android.view.View$PerformClick.run(View.java:16966) 
 at android.os.Handler.handleCallback(Handler.java:615) 
 at android.os.Handler.dispatchMessage(Handler.java:92) 
 at android.os.Looper.loop(Looper.java:137) 
 at android.app.ActivityThread.main(ActivityThread.java:4745) 
 at java.lang.reflect.Method.invokeNative(Native Method) 
 at java.lang.reflect.Method.invoke(Method.java:511) 
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
 at dalvik.system.NativeStart.main(Native Method) 
 Caused by: java.lang.IllegalArgumentException: provider==null
 at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1153)
 at ru.ochakovo.ochakoco.FormActivity.GeoClick(FormActivity.java:56)
 at java.lang.reflect.Method.invokeNative(Native Method) 
 at java.lang.reflect.Method.invoke(Method.java:511) 
 at android.view.View$1.onClick(View.java:3586) 
 at android.view.View.performClick(View.java:4084) 
 at android.view.View$PerformClick.run(View.java:16966) 
 at android.os.Handler.handleCallback(Handler.java:615) 
 at android.os.Handler.dispatchMessage(Handler.java:92) 
 at android.os.Looper.loop(Looper.java:137) 
 at android.app.ActivityThread.main(ActivityThread.java:4745) 
 at java.lang.reflect.Method.invokeNative(Native Method) 
 at java.lang.reflect.Method.invoke(Method.java:511) 
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
 at dalvik.system.NativeStart.main(Native Method) }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-29 11:38:55

由于全球定位系统供应商的不通航性,你很可能会犯这个错误.请让该人检查设置是否已启用全球定位系统提供商或网络提供商到位置settings..Hope,所以这对你有帮助

票数 0
EN

Stack Overflow用户

发布于 2016-04-29 11:35:08

我认为你的提供者空空值..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36937090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档