7

アプリのアップデートを公開するためにAndroidマーケットに行ったところ、既存のインストールからいくつかの新しいエラーが報告されていることに気付きました。私はそれらのほとんどを理解する(そして何かをしようとする)ことができますが、これは私をかなり困惑させます:

java.lang.StackOverflowError
at android.view.ViewGroup.resetResolvedTextDirection(ViewGroup.java:5131)
at android.view.ViewGroup.resetResolvedTextDirection(ViewGroup.java:5131)
at android.view.ViewGroup.resetResolvedTextDirection(ViewGroup.java:5131)
at android.view.ViewGroup.resetResolvedTextDirection(ViewGroup.java:5131)
at android.view.ViewGroup.resetResolvedTextDirection(ViewGroup.java:5131)
at android.view.ViewGroup.resetResolvedTextDirection(ViewGroup.java:5131)
... this line repeats about 200 times or so ...

これがすべてです-他の種類の情報はありません。

私はこれをどこから調査し始めるかについて完全に困惑しています。どんなアイデアでも大歓迎です。

4

3 に答える 3

10

これはICSで追加されたメソッドのように見えるので、4.0以降です。コードを見ると、階層内にある種のビューループがあるように見えます。これは、明らかchild.resetResolvedTextDirection();それを実行している行だからです。言い換えると、ViewGroupレイアウト内のクラスの1つが、将来的にそれ自体に子として追加されたということです。

于 2012-02-07T17:18:38.210 に答える
1

問題を突き止めました。私にはAndroidのバグのように見えます。これは、ビューvisibilityが明示的に設定されてVISIBLEいるが、ビュー自体とビューの親がメインビューに追加されていない場合に発生します。

私は最終的に、問題のListViewをコードで作成する代わりにXMLに追加し、ビュー全体がメインビューに追加された後にコードを移動することで問題を回避しましたsetVisibility(View.VISIBLE)(つまり、親階層は各子から初め)。

少なくとも、このエラーはもう発生していません。

于 2012-02-24T15:19:19.810 に答える
1

問題は、ビューを膨らませて、inflater.inflate(R.layout.view_topic, this); このビューの親がまだステージに表示/レンダリングされないようにする場合です。

親が表示された後にレンダリングするか、呼び出してください

View child = inflater.inflate(R.layout.view_topic, null); // null will give warning but it wont throw an exception
        this.addView(child);
于 2014-08-27T12:25:40.373 に答える