java.lang.VerifyError - Android应用程序在将开发移植到另一台机器后未启动

问题描述:

我一直在桌面计算机上开发应用程序数星期。我已经开始在另一台机器上开发了,所以,我检查了代码=内置它,都很好 - 通过在eclipse中按播放来安装它,并且它在关闭时失败。java.lang.VerifyError - Android应用程序在将开发移植到另一台机器后未启动

不好。

所以 - 这是堆栈跟踪:http://pastebin.com/tUBAK1Zq

我认为这是可能的Android SDK中的版本做 - 但我与运行的版本是一样的桌面上。

行该应用最终抛出堆栈跟踪上是:

//初始化则tabspec对于每个标签,并把它添加到TabHost 规格= tabHost.newTabSpec(“replaylist”)setIndicator(“重放List“, res.getDrawable(R.drawable.tabview_changeicon)) .setContent(intent);

tabHost.addTab(spec);

有人可以帮我解决这个问题!

+0

无法访问pastebin,你可以把stacktrace在这里? – edthethird

+0

http://tinypaste.com/e0452977 – RenegadeAndy

该问题最终是由于过时的android sdk经理,我认为

我在Android中多次看到“验证”问题。通常情况下,当您使用标准的Java 6 api但该API不存在于Android中时会发生这种情况。因为你的eclipse是基​​于你的JRE“验证”代码的,所以如果你使用原生的Android JRE(dalvik)中不存在的API,它就不会抱怨。其结果是一个关闭力量和一个神秘的验证信息。当你使用标准的java jdk编译一个库,然后在Android项目中使用该库时,你会看到很多东西。

您最好打赌的是使用Java 5兼容性来编译您的库项目,并查看哪些API是eclipse正在抱怨的。通常你会发现你正在使用一个尚未在Android中实现的Method in String或StringBuffer(或其他核心类)。我也被使用未在Android中实现的构造函数咬伤。

+0

试过了 - 它所抱怨的是@Override注释和内联类....正如我所说 - 这在我的另一台机器上100%工作,没有代码更改发生,所以为什么它会突然出现这个错误,并与一个无效的API关联?我不认为这是同一个问题? – RenegadeAndy

+0

我每次都在抱怨TabHost.addSpec的方式是什么令我感到厌烦......? – RenegadeAndy

+0

如果你有你的jar的源代码,那么你可以尝试使该项目成为一个Android库项目并使用它。通过这种方式,看看是否有所作为,因为使用库项目时,JAR将使用dalvik编译器进行重建。堆栈跟踪显示您的活动无法创建,所以如果您的活动是您的选项卡之一,那么这可能是addTab显示为失败的原因。 – stuckless