2011-11-07 44 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,並且在嘗試覆蓋不存在的方法時,該應用程序崩潰。

一旦將清單聲明移除到不是實際活動的類別,該應用程序就已獲得批准。奇怪的是,谷歌和日食沒有拿起聲明的活動,而不是當應用程序編譯時的活動。

希望這可以幫助其他人無法找到他們的應用程序沒有得到亞馬遜批准的原因。

相關問題