2011-11-07 13 views
1

私はAmazonのApp Storeにアプリを提出しました。それは同じ理由で2度拒否されましたが、私は問題を見つけることができません。開始時には通常2-3個のアクティビティウィンドウがクラッシュします。このエラーはGoogleのテストデバイスでは発生しません。また、Googleマーケットでアプリからのエラーやクラッシュは一度も発生していません。だからこれまで私はエラーを完全に複製することができませんでした。Amazon app store Android Java.Lang.VerifyError cant replicate

最後に私たちが送信したスタックトレースを要求しましたが、エラーではなく、警告ではなく、どのメソッドがW/dalvikvmからJava.Lang.VerifyErrorを引き起こしているかを正確に調べる必要があります。彼らは、アプリケーションを逆コンパイルし、アマゾンのdrm /追跡/任意のコードをアプリに注入し、それを再コンパイルすると、私のコードのいくつかでエラーがクラッシュすると想定するのは合理的ですか? Amazonが私たちとは違うバージョンのJavaでコンパイルされている可能性はありますか? (ours is 1.6)

appはminSDKとtargetSDKの両方がapi8に設定されています(最低2.2)。これを2.2とコンパイルします。他の誰もがこのエラーを前にAmazonに持っていて、どのように問題が解決したのか?

おかげ

+0

Java 1.6のメソッドを使用していますか?たぶんString.isEmpty()?もう少し情報なしであなたを助けることはほとんど不可能になるでしょう。 – kabuko

+0

String.isEmpty()など何も使用しません。ほとんどが@overrideです。 情報の欠如について申し訳ありませんが、私はわずかな情報を私がAmazonから手に入れていくことを手伝ってくれます。この問題は、コードを見れば解決できるものではなく、Amazon Appstoreのレビューチームと同じ経験を持ち、問題が解決されたことがある人に見えます。 –

+0

私は同じ問題があります。私は彼らのエラーを再現することはできません(2つの別々のアプリケーション) – easycheese

答えて

1

は、問題を発見しました。マニフェストには、元々はアクティビティとして宣言された.javaファイルがありましたが、代わりにDialogを拡張するように変更されました。

Amazonはコードをあなたのアプリに注入するときに、Androidアクティビティを見つけるためにマニフェストを調べ、コールバックやメソッドオーバーライドなどのコードを注入します。その中にはActivityクラスに固有のものがあります。 Amazonが私のマニフェストを見たとき、クラスはアクティビティだと思っていましたが、実際はDialogでした。存在しなかったメソッドをオーバーライドしようとすると、アプリケーションはクラッシュしていました。

マニフェスト宣言を実際のアクティビティではないクラスに削除すると、そのアプリケーションが承認されました。その奇妙なGoogleと日食は、アプリケーションがコンパイルされたときに活動ではなかった宣言された活動を拾わなかった。

これは、Amazonが承認していない理由を知ることができない人を助けることができます。