我有一个工作了几个月的项目,但几天前我更新了 ADT 插件,今天突然该项目停止工作。如果我尝试在设备上运行它,它会在启动后立即引发 VerifyError。
(xxx是项目名称的替代品,因为我不允许发布它)
这种错误会重演,所以我只发布一个。主要的 VerifyError 本身是无用的,因为它只是指向主要的启动 Activity。
05-03 18:06:59.898: I/dalvikvm(26640): Could not find method org.osmdroid.views.MapView.enableScroll, referenced from method com.xxx.activities.MainAc.disableSwipe
05-03 18:06:59.898: D/dalvikvm(26640): VFY: replacing opcode 0x6e at 0x0005
05-03 18:06:59.898: D/dalvikvm(26640): VFY: dead code 0x0008-0010 in Lcom/xxx/activities/MainAc;.disableSwipe ()V
05-03 18:06:59.898: W/dalvikvm(26640): VFY: unable to find class referenced in signature (Lorg/osmdroid/util/GeoPoint;)
05-03 18:06:59.898: E/dalvikvm(26640): Could not find class 'org.osmdroid.util.GeoPoint', referenced from method com.xxx.activities.MainAc.displayPointNavigation
05-03 18:06:59.908: W/dalvikvm(26640): VFY: unable to resolve new-instance 575 (Lorg/osmdroid/util/GeoPoint;) in Lcom/xxx/activities/MainAc;
05-03 18:06:59.908: D/dalvikvm(26640): VFY: replacing opcode 0x22 at 0x0018
05-03 18:06:59.908: D/dalvikvm(26640): VFY: dead code 0x001a-0093 in Lcom/xxx/activities/MainAc;.displayPointNavigation (Lorg/osmdroid/util/GeoPoint;)V
05-03 18:06:59.908: W/dalvikvm(26640): Unable to resolve superclass of Lcom/xxx/overlay/MyUpmoveLocationOverlay; (584)
我认为问题在于我包含 osmdroid lib 的方式。由于要改很多osmdroid代码,不想一直建jar,所以我从osmdroid源码中创建了一个Java Project,并将osmdroid Project添加到我的Project的Classpath中。
到目前为止,这个设置就像一个魅力。我认为我自己可能已经更改了导致VerifyError 的某些内容,因此我将项目恢复到它确实可以正常工作的修订版,但我得到了同样的错误。
是否有一些设置我必须更改才能使其再次工作,或者我是否必须重做整个设置并将 osmdroid 作为 jar 包含在内?