0

嗨,我最近注意到,当 geoCoder.getFromLocationName()在 android 2.2 (Froyo) 上运行该函数时,我会收到一个 IOExeption(这在其他 SDK 版本上不会发生)。

经过一些研究,我发现添加以下权限的建议:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

然而,这并没有解决问题,这似乎是一个 Android SDK 错误。有没有解决这个问题的方法?

编辑:这是堆栈跟踪,虽然它不是特别有用,但内部堆栈跟踪为空,所以不是很好。

08-26 18:37:53.831: WARN/System.err(347): 在 android.location.Geocoder.getFromLocationName(Geocoder.java:159) 08-26 18:37:53.831: WARN/System.err(347) : 在 com.Finko.HomeScreen.onCreate(HomeScreen.java:32) 08-26 18:37:53.851: WARN/System.err(347): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 08 -26 18:37:53.851: WARN/System.err(347): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 08-26 18:37:53.851: WARN/System.err(347):在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 08-26 18:37:53.861: WARN/System.err(347): 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 08 -26 18:37:53.861: WARN/System.err(347): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 08-26 18:37:53.871:WARN/System.err(347): at android.os.Handler.dispatchMessage(Handler.java:99) 08-26 18:37:53.882: WARN/System.err(347): at android.os.Looper.loop (Looper.java:123) 08-26 18:37:53.882: WARN/System.err(347): 在 android.app.ActivityThread.main(ActivityThread.java:4627) 08-26 18:37:53.891: WARN /System.err(347): at java.lang.reflect.Method.invokeNative(Native Method) 08-26 18:37:53.903: WARN/System.err(347): at java.lang.reflect.Method.invoke (Method.java:521) 08-26 18:37:53.903: WARN/System.err(347): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 08-26 18 :37:53.911: WARN/System.err(347): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-26 18:37:53.911: WARN/System.err(347) : 在 dalvik.system.NativeStart.main(Native Method)Handler.dispatchMessage(Handler.java:99) 08-26 18:37:53.882: WARN/System.err(347): 在 android.os.Looper.loop(Looper.java:123) 08-26 18:37: 53.882: WARN/System.err(347): at android.app.ActivityThread.main(ActivityThread.java:4627) 08-26 18:37:53.891: WARN/System.err(347): at java.lang.reflect .Method.invokeNative(Native Method) 08-26 18:37:53.903: WARN/System.err(347): at java.lang.reflect.Method.invoke(Method.java:521) 08-26 18:37: 53.903: WARN/System.err(347): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 08-26 18:37:53.911: WARN/System.err(347):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-26 18:37:53.911: WARN/System.err(347): 在 dalvik.system.NativeStart.main(Native Method)Handler.dispatchMessage(Handler.java:99) 08-26 18:37:53.882: WARN/System.err(347): 在 android.os.Looper.loop(Looper.java:123) 08-26 18:37: 53.882: WARN/System.err(347): at android.app.ActivityThread.main(ActivityThread.java:4627) 08-26 18:37:53.891: WARN/System.err(347): at java.lang.reflect .Method.invokeNative(Native Method) 08-26 18:37:53.903: WARN/System.err(347): at java.lang.reflect.Method.invoke(Method.java:521) 08-26 18:37: 53.903: WARN/System.err(347): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 08-26 18:37:53.911: WARN/System.err(347):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-26 18:37:53.911: WARN/System.err(347): 在 dalvik.system.NativeStart.main(Native Method)错误(347):在 android.os.Looper.loop(Looper.java:123)08-26 18:37:53.882:WARN/System.err(347):在 android.app.ActivityThread.main(ActivityThread.java :4627) 08-26 18:37:53.891: WARN/System.err(347): at java.lang.reflect.Method.invokeNative(Native Method) 08-26 18:37:53.903: WARN/System.err( 347): 在 java.lang.reflect.Method.invoke(Method.java:521) 08-26 18:37:53.903: WARN/System.err(347): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller .run(ZygoteInit.java:868) 08-26 18:37:53.911: WARN/System.err(347): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-26 18 :37:53.911: WARN/System.err(347): at dalvik.system.NativeStart.main(Native Method)错误(347):在 android.os.Looper.loop(Looper.java:123)08-26 18:37:53.882:WARN/System.err(347):在 android.app.ActivityThread.main(ActivityThread.java :4627) 08-26 18:37:53.891: WARN/System.err(347): at java.lang.reflect.Method.invokeNative(Native Method) 08-26 18:37:53.903: WARN/System.err( 347): 在 java.lang.reflect.Method.invoke(Method.java:521) 08-26 18:37:53.903: WARN/System.err(347): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller .run(ZygoteInit.java:868) 08-26 18:37:53.911: WARN/System.err(347): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-26 18 :37:53.911: WARN/System.err(347): at dalvik.system.NativeStart.main(Native Method)java:4627) 08-26 18:37:53.891: WARN/System.err(347): at java.lang.reflect.Method.invokeNative(Native Method) 08-26 18:37:53.903: WARN/System.err (347): 在 java.lang.reflect.Method.invoke(Method.java:521) 08-26 18:37:53.903: WARN/System.err(347): 在 com.android.internal.os.ZygoteInit$ MethodAndArgsCaller.run(ZygoteInit.java:868) 08-26 18:37:53.911: WARN/System.err(347): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-26 18:37:53.911:WARN/System.err(347):在 dalvik.system.NativeStart.main(本机方法)java:4627) 08-26 18:37:53.891: WARN/System.err(347): at java.lang.reflect.Method.invokeNative(Native Method) 08-26 18:37:53.903: WARN/System.err (347): 在 java.lang.reflect.Method.invoke(Method.java:521) 08-26 18:37:53.903: WARN/System.err(347): 在 com.android.internal.os.ZygoteInit$ MethodAndArgsCaller.run(ZygoteInit.java:868) 08-26 18:37:53.911: WARN/System.err(347): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-26 18:37:53.911:WARN/System.err(347):在 dalvik.system.NativeStart.main(本机方法)ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 08-26 18:37:53.911: WARN/System.err(347): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08 -26 18:37:53.911:WARN/System.err(347):在 dalvik.system.NativeStart.main(本机方法)ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 08-26 18:37:53.911: WARN/System.err(347): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08 -26 18:37:53.911:WARN/System.err(347):在 dalvik.system.NativeStart.main(本机方法)

4

2 回答 2

3

接着,

在我看来,这是模拟器的问题...... getFromLocationName 方法似乎在设备上工作得很好(至少我没有收到任何用户报告它不起作用)

虽然在此版本的 Android 上进行开发和调试时这很痛苦,但您似乎可以使用它。

我最终添加了几个文本框,我只是在调试时长时间地插入这些文本框,然后在最终构建之前将其删除。

不是最好的答案,但它可能会让你感动。祝你好运

于 2010-09-02T19:51:17.870 回答
0

很久以前,我在 anddev.org 论坛上对此进行了标记。一些人有同样的问题,但我们都没有解决方案。从那以后,我发现它在http://code.google.com/p/android/issues/detail?id=8816中被列为错误。如果您使用 AVD 级别 8,IOException 是“服务不可用”。当您使用 Eclipse 并启动模拟器时,您会得到一个提示,它不会工作,启动屏幕会短暂显示“无服务”消息由于android核心正在加载。我想此时它一定是在尝试注册应用程序中使用的服务。我认为此时没有任何方法可以连接调试器,因为它可能所有的 Dalvik 字节码都在运行。

于 2010-09-05T12:35:29.443 回答