4

Androidアプリケーションでは、onViewCreatedをオーバーライドして、ビューが表示されたらOnClickListenersを設定するフラグメントを実装しています。

これは、実装するとすべて正常に機能します。ただし、互換性ライブラリv4 r3を追加するとすぐに、メソッドがまったく呼び出されないようです。

今のところ、セットアップをonResumeに移行していますが、それは実際には理想的ではありません。だからここに私の質問があります:

  • これは互換性ライブラリのバグですか?

  • より良い回避策はありますか?

さらに掘り下げてさまざまなことを試した後、このスタックトレースを取得しました。これは、互換性ライブラリのバグであると信じさせてくれます。

10-07 14:25:11.130: ERROR/AndroidRuntime(2964): FATAL EXCEPTION: main
        java.lang.NoSuchMethodError: android.support.v4.app.Fragment.onViewCreated
        at roboguice.fragment.RoboFragment.onViewCreated(RoboFragment.java:18)

しかし、さらに奇妙なことに。互換性ライブラリのソースを見ると、そのメソッドは実際には存在しますが、空です。

4

1 に答える 1

3

何度も行ったり来たりしてデバッグした後、私は問題を見つけました。プロジェクトで古いバージョンの互換性ライブラリを使用していたことがわかりました。プロジェクトを更新しましたが、問題なく動作します。参考までに、必要な変更は、mavenpomファイルの互換性ライブラリの依存関係を次のようにすることです。

        <dependency>
            <groupId>android.support</groupId>
            <artifactId>compatibility-v4</artifactId>
            <version>r3</version>
        </dependency>

Maven Android SDK Deployerを使用して、ライブラリをMavenリポジトリにデプロイします。また、githubアカウントのroboguicewikiとリンクされた要点を更新しました。

于 2011-10-18T19:22:30.397 に答える