2011-08-01 9 views
2

GWTクラスのコンパイル中にコンパイラの例外が発生しました。私はここにバグレポートを提出しました:http://code.google.com/p/google-web-toolkit/issues/detail?id=6623コンパイル済みGWTコードを使用したJavaScript例外

"draftCompile"を使ってコンパイルする方法が見つかりました。ただし、生成されたJavaScriptコードは実行されても機能しません。

Javaソースファイルは、バグトラッカーから入手可能であり、かつコンパイルプロジェクトはここにある:http://clientssh1.rbg.informatik.tu-darmstadt.de:9000/war/Gwittest.html

エラーは、次のとおりです。(クローム)「キャッチされない例外TypeError:ヌルのプロパティ 『testpackage_shared_ship_Level_boards』を読み取ることができません」。 Firefoxでは、別のエラーです。

コードはDevモード(Eclipseから)で動作します。

このエラーを回避するにはどうすればよいですか?それはコンパイル/最適化のバグに関係していますか?どのように私はそれを回避するのですか?それがバグであれば、それも報告しなければなりませんか?

編集:問題のクラスはここにある:コンパイルされたJavaScriptのようなコードが含まれているようなエラーが聞こえるhttps://gist.github.com/1139147

+0

私の唯一のアドバイスは、-style PRETTYでコンパイルして、どこに問題があるのか​​を調べることです。私は最近、同じ症状(http://code.google.com/p/google-web-toolkit/issues/detail?id=6579)に問題がありました。これを解決する唯一の方法は、コンパイラJsとソースJavaコードを比較すると、コンパイラがどこで苦労しているのかを知ることができます(btw、最新のfirefoxでアプリを試したとき、これは全く別のエラーを表示しました[17:35:46.422] $ staticはnull @ http:// clientssh1です。 rbg.informatik.tu-darmstadt.de:9000/war/gwittest/D02B16F23426C7BD8D065C01826B346C.cache.html:9737) – jusio

答えて

2

null.testpackage_shared_ship_Level_boards 

GWTオプティマイザは、タイプのあなたの変数と考えている場合、これは「どうなりますフィールド "ボード"が読み込まれている "レベル"は、nullでなければなりません。通常、オプティマイザが正しいです。

したがって、アプローチは次のとおりです。 コードを人間が判読可能なjavascript(-style pretty)にコンパイルします。 JavaScriptのエラーを取得し、それを引き起こした行を見つけます。あなたのJavaソースに対応する行を見つけて、変数の値がどこから来るのかを調べます。変数が初期化されていない可能性があります。

+0

これはすでに人間が読めるようになっています。バグレポートでソースを見ることができます。オプティマイザは無効です。開発モードで動作します。 –

+0

@ user309483:あなたはこの回答を受け入れ、それがどのように役立つかわからないので、あなたのケースでどのように問題を発見したか記述できますか? –

+0

@Paulo:まあ、GWTコンパイラのバグだったと思う。 GWTコンパイラが問題を抱えているという私の疑惑を確認するために、この回答は努力を示しました。また、私の受け入れ枠をあまりにも低くしたいとは思っていませんでした。なぜなら、人々が私の質問に答えるのを妨げるからです。ごめんなさい。私はGWT 2.3.0でこの問題を抱えていたことに注意してください。 –

関連する問題