2011-11-07 75 views
1

我已将应用提交给亚马逊应用商店。由于同样的原因,它被拒绝了两次,但我找不到问题。它在一开始就会崩溃,通常会有2-3个活动窗口。我们的测试设备上从未发生过这种错误,并且Google市场上的应用程序没有发生任何错误或崩溃。所以到目前为止,我已经完全无法复制错误。亚马逊应用商店Android Java.Lang.VerifyError无法复制

在最后一次拒绝时,我们请求了一个他们发送的堆栈跟踪,但只是出现错误,而不是警告,从我收集的信息中我需要找出究竟是什么方法导致W/dalvikvm的Java.Lang.VerifyError。假设当他们反编译应用程序并将他们的amazon drm/tracking/whatever代码注入应用程序并重新编译它时,它会导致与我的一些代码发生冲突错误,这是否合理?或者亚马逊可能在编译的Java版本不同于我们的版本? (我们的版本是1.6)

该应用程序将minSDK和targetSDK都设置为api8,最小为2.2,我们将其编译为2.2,之前有没有其他人与亚马逊发生过此错误,并且可能能够给我一些见解至于如何解决问题?

谢谢

+0

您是否使用任何Java 1.6方法?也许String.isEmpty()?没有更多的信息,帮助你几乎是不可能的。 – kabuko

+0

不使用任何String.isEmpty()或任何东西,大多只是@override。 对于缺乏信息感到抱歉,我几乎无法帮助自己从亚马逊获得什么样的信息。这个问题在我看来似乎是无法通过查看代码来解决的问题,而是由与Amazon Appstore上的审阅团队有相同经验并已解决问题的人共同解决。 –

+0

我有同样的问题。我无法重现他们的错误(2个独立的应用程序) – easycheese

回答

1

发现问题。在Manifest中,有一个.java文件被声明为最初的一个活动,但它已被改为扩展Dialog。

当亚马逊注入代码到您的应用中时,他们会查看清单以查找Android活动,并向其中注入代码,如回调和方法覆盖,其中一些特定于Activity类。当亚马逊看看我的清单时,他们认为这个类是一个Activity,但实际上它现在是一个Dialog,并且在尝试覆盖不存在的方法时,该应用程序崩溃。

一旦将清单声明移除到不是实际活动的类别,该应用程序就已获得批准。奇怪的是,谷歌和日食没有拿起声明的活动,而不是当应用程序编译时的活动。

希望这可以帮助其他人无法找到他们的应用程序没有得到亚马逊批准的原因。