0

最近、最初のアプリ (サウンドボード) をリリースしましたが、Froyo ユーザーから、アプリに互換性があるように見えても、正しく動作しないという苦情が寄せられています。

私のアプリはスプラッシュ スクリーンで始まり、メイン メニューがあり、7 つのタブがあるメイン アクティビティが開始されます。各タブには、テキストビューと 4 つのイメージボタンで構成される約 20 のサウンドが含まれています。広告バナーと合わせて、これは 1 回のアクティビティで約 500 回のビューに相当します。Eclipse は、80 を超えるビューはパフォーマンスに悪い可能性があると警告しましたが、Samsung Galaxy Y のような低グレードの携帯電話でもアプリを実行できます。

アプリに設定した最小 SDK はレベル 8 の Froyo で、否定的なフィードバックを受け取ってテストしたところ、Froyo でアクティビティが開始されないことがわかりました。

Android 2.2 のアクティビティごとに 80 ビューという固定制限はありますか? それに関する情報はどこにも見つかりませんでした。

これは、開発者コンソールで常に表示されるエラーです。

java.lang.VerifyError: com.cheftony.psychsoundfree.Nicknames
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1429)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660)
at dalvik.system.NativeStart.main(Native Method)

私は何をすべきか?Android バージョンのデバイスに基づいてさまざまなアクティビティを開始するようにメイン メニューを変更することを考えていました。アクティビティごとのビュー数はそれほど多くありません。これは多くの作業であり、基本的にアプリを分割し、更新にかかる作業が 2 倍になります。

それとも、Froyo デバイスを除外する必要がありますか? 今日でもFroyoをサポートすることはどれほど重要ですか?

4

1 に答える 1

0

minSdkVersion よりも新しい SDK バージョンのみのメソッドを呼び出そうとすると、この種のエラー (VerifyError) が発生しました。適切な SDK バージョンでのみ呼び出されることを確認しましたが。解決策は、リフレクションを使用して上位の SDK からメソッドにアクセスすることです。

これがあなたの場合かどうかわかりませんが、どう思いますか? そのようなメソッドを呼び出していますか?

于 2012-08-09T12:28:22.523 に答える