首页 文章

MapView中的强制关闭错误

提问于
浏览
2

我想点击一个按钮打开 Map 但不幸的是我的应用程序强行关闭...这是我的logcat:

01-31 18:11:49.465: VERBOSE/InputDevice(2836): ID[0]=0(0) Up(1=>0)
01-31 18:11:49.606: WARN/dalvikvm(6111): Class resolved by unexpected DEX: Lkostas/menu/olympiakos/GoogleMaps;(0x486356d8):0x22f5d8 ref [Lcom/google/android/maps/MapActivity;] Lcom/google/android/maps/MapActivity;(0x486356d8):0x21dca0
01-31 18:11:49.606: WARN/dalvikvm(6111): (Lkostas/menu/olympiakos/GoogleMaps; had used a different Lcom/google/android/maps/MapActivity; during pre-verification)
01-31 18:11:49.606: WARN/dalvikvm(6111): Unable to resolve superclass of Lkostas/menu/olympiakos/GoogleMaps; (67)
01-31 18:11:49.606: WARN/dalvikvm(6111): Link of class 'Lkostas/menu/olympiakos/GoogleMaps;' failed
01-31 18:11:49.610: DEBUG/AndroidRuntime(6111): Shutting down VM
01-31 18:11:49.610: WARN/dalvikvm(6111): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111): FATAL EXCEPTION: main
01-31 18:11:49.641: ERROR/AndroidRuntime(6111): java.lang.NoClassDefFoundError: kostas.menu.olympiakos.GoogleMaps
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at kostas.menu.olympiakos.DialogActivity$1.onItemClick(DialogActivity.java:47)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at android.widget.AdapterView.performItemClick(AdapterView.java:284)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at android.widget.ListView.performItemClick(ListView.java:3672)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at android.os.Handler.handleCallback(Handler.java:587)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at android.os.Looper.loop(Looper.java:123)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at android.app.ActivityThread.main(ActivityThread.java:4627)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at java.lang.reflect.Method.invokeNative(Native Method)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at java.lang.reflect.Method.invoke(Method.java:521)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at dalvik.system.NativeStart.main(Native Method)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111): Caused by: java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at dalvik.system.DexFile.defineClass(Native Method)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:209)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:203)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
01-31 18:11:49.641: ERROR/AndroidRuntime(6111):     ... 13 more
01-31 18:11:49.660: WARN/ActivityManager(2836):   Force finishing activity kostas.menu.olympiakos/.DialogActivity

这就是我调用 Map 活动的方式:

Intent newActivity111 = new Intent(DialogActivity.this, GoogleMaps.class);     
                                startActivity(newActivity111);

3 回答

  • 4

    不知何故,您的设备或模拟器具有与编译器使用的 com.google.android.maps.MapActivity 不同的实现 . 在正常情况下这是不可能的 . 它表明您已经严重搞砸了构建过程,例如手动将Maps附加JAR添加到构建路径,而不是仅仅设置启用Maps的目标 .

  • 1

    不太确定您的问题是否与可用库有关 .

    Map 库不是标准Android库的一部分 . 因此,您需要在Manifest文件中声明它 .

    点击链接:http://developer.android.com/resources/tutorials/views/hello-mapview.html

    由于库不可用,因此扩展MapActivity的Activity“GoogleMaps”不会加载到系统中 .

  • 0

    所有与使用MapActivity时获取致命异常java.lang.NoClassDefFoundError相关的问题和答案都没有帮助我 . CommonsWare的回复给了我一些帮助我解决问题的提示 .

    当我将项目复制到新环境时,我的设置不包括Google Map 库 . 我手动将maps.jar文件添加到我的项目中,并且能够成功链接应用程序但是当我尝试启动从MapActivity派生的活动时,我得到了致命的异常 .

    我删除了对maps.jar库的引用 . 然后我注意到我正在构建Android 2.2 SDK . 我没有安装Google API SDK . 下载并安装Google API SDK并将此SDK指定为目标后,我的问题就消失了 .

相关问题