java.lang.VerifyError - 将开发移动到另一台机器后,android app无法启动

时间:2012-05-31 15:37:29

标签: java android adb forceclose

我在台式电脑上开发了几个星期的应用程序。我已经开始在不同的机器上进行开发了,所以,我检查了代码=构建它,一切都很好 - 通过在eclipse中按下播放来安装它并且在关闭力的情况下失败。

不太好。

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

我认为这可能与android sdk的版本有关 - 但我运行的版本与桌面版本相同。

应用程序最终抛出堆栈跟踪的行是:

// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("replaylist").setIndicator("Replay List",
    res.getDrawable(R.drawable.tabview_changeicon))
    .setContent(intent);

tabHost.addTab(spec);

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

2 个答案:

答案 0 :(得分:1)

我已经看过"验证"在Android中我自己发了很多次。通常,当您使用标准Java 6 api时会发生这种情况,但Android中不存在API。因为你的日食是"验证"基于您的JRE的代码,如果您使用的是原生Android JRE(dalvik)中不存在的API,它就不会抱怨。结果是一个强制关闭和一个神秘的验证消息。当您使用标准java jdk编译库然后在Android项目中使用该库时,您会看到很多。

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

答案 1 :(得分:0)

问题到底是由于我相信过时的android sdk经理