我正在使用 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 语句之后捕获它。谢谢您的帮助!
最佳答案
关于java - IOException 不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9596354/