java - IOException 不执行任何操作

标签 java android ioexception google-geocoder

我正在使用 android map API 编写一个 Android 应用程序。 我有一个调用当前位置的按钮,并尝试使用 Geocoder getFromLocation 函数打印地址。

当我单击按钮时,当我使用e.printStackTrace()时,没有任何反应,应用程序崩溃了。

相关代码如下:

    public void gpsToastButton(View view) {

        Location gps = locationManager
                .getLastKnownLocation(LocationManager.GPS_PROVIDER);


        if (gps != null) {

            int lat = (int) (gps.getLatitude()  * 1E6);
            int lng = (int) (gps.getLongitude()  * 1E6);

            Geocoder myLocation = new Geocoder(getApplicationContext(), Locale.getDefault());   
            try {
                List<Address> myList = myLocation.getFromLocation(lat, lng, 1);
                String message = String
                        .format("gps:" + myList,
                                gps.getLongitude(), gps.getLatitude()
                                );
                Toast.makeText(GoogleMapActivity.this, message, Toast.LENGTH_LONG)
                        .show();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                String message2 = String
                        .format("kein anschluss unter dieser nummer");
                Toast.makeText(GoogleMapActivity.this, message2, Toast.LENGTH_LONG);
            }








        }

else{...
    }

点击按钮后的LogCat:

03-07 05:16:33.318: E/AndroidRuntime(883): FATAL EXCEPTION: main
03-07 05:16:33.318: E/AndroidRuntime(883): java.lang.IllegalStateException: Could not execute method of the activity
03-07 05:16:33.318: E/AndroidRuntime(883):  at android.view.View$1.onClick(View.java:2072)
03-07 05:16:33.318: E/AndroidRuntime(883):  at android.view.View.performClick(View.java:2408)
03-07 05:16:33.318: E/AndroidRuntime(883):  at android.view.View$PerformClick.run(View.java:8816)
03-07 05:16:33.318: E/AndroidRuntime(883):  at android.os.Handler.handleCallback(Handler.java:587)
03-07 05:16:33.318: E/AndroidRuntime(883):  at android.os.Handler.dispatchMessage(Handler.java:92)
03-07 05:16:33.318: E/AndroidRuntime(883):  at android.os.Looper.loop(Looper.java:123)
03-07 05:16:33.318: E/AndroidRuntime(883):  at android.app.ActivityThread.main(ActivityThread.java:4627)
03-07 05:16:33.318: E/AndroidRuntime(883):  at java.lang.reflect.Method.invokeNative(Native Method)
03-07 05:16:33.318: E/AndroidRuntime(883):  at java.lang.reflect.Method.invoke(Method.java:521)
03-07 05:16:33.318: E/AndroidRuntime(883):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-07 05:16:33.318: E/AndroidRuntime(883):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-07 05:16:33.318: E/AndroidRuntime(883):  at dalvik.system.NativeStart.main(Native Method)
03-07 05:16:33.318: E/AndroidRuntime(883): Caused by: java.lang.reflect.InvocationTargetException
03-07 05:16:33.318: E/AndroidRuntime(883):  at google.map.activity.GoogleMapActivity.gpsToastButton(GoogleMapActivity.java:64)
03-07 05:16:33.318: E/AndroidRuntime(883):  at java.lang.reflect.Method.invokeNative(Native Method)
03-07 05:16:33.318: E/AndroidRuntime(883):  at java.lang.reflect.Method.invoke(Method.java:521)
03-07 05:16:33.318: E/AndroidRuntime(883):  at android.view.View$1.onClick(View.java:2067)
03-07 05:16:33.318: E/AndroidRuntime(883):  ... 11 more
03-07 05:16:33.318: E/AndroidRuntime(883): Caused by: java.io.IOException: Service not Available
03-07 05:16:33.318: E/AndroidRuntime(883):  at android.location.Geocoder.getFromLocation(Geocoder.java:117)
03-07 05:16:33.318: E/AndroidRuntime(883):  ... 15 more

提前谢谢您。

//编辑:好的,我现在解决了。我将 IOException 抛出到 gpsToastButton 类,并在最后一个 else 语句之后捕获它。谢谢您的帮助!

最佳答案

这个问题的关键是最后一个“原因”“服务不可用”。

另一个answer on SO should help .

似乎“...任何不附带 Market、GMail 等的设备也将缺少地理编码器后端”。

关于java - IOException 不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9596354/

相关文章:

java - 序列化 Spring BindingAwareModelMap

java - 在 Java 应用程序中管理时间的最佳方法是什么?

Java-为什么在 while() 语句中执行 if() block ?

java - 反序列化问题 - java.io.StreamCorruptedException : invalid type code: 00

java - 无法使用JConsole远程连接到weblogic服务器

java - 在 for 循环中 hibernate ,总迭代时间为 2 分钟

java - MediaPlayer - 切换歌曲之间的时间很长

java - 如果 RecyclerView 中的列表为空,我想显示带有空消息的 Toast

Android 运行时错误 :Package couldn't be installed

java.io.IOException : Server returned HTTP response code: 403 for URL