SDK 4.0 を使用して、3.1.3 のデバイスにコンパイルする Titanium 1.2.1 を使用しています。このクラッシュは、シミュレーターには現れませんが、デバイスにのみ現れます。連絡先のリストをリストするtableViewがあります。連絡先の名前をクリックすると、新しい重いウィンドウが (別の実行コンテキストで) 開きます。新しいウィンドウには、連絡先の名前や写真などの詳細が表示され、サーバーに ajax リクエストを送信して他のすべての詳細を入力します。
contactTableView.addEventListener('クリック', function(evt) { var contactWin = Ti.UI.createWindow({ url: "contacts_show.js", タイトル: evt.rowData.title, backgroundColor: colors.window_bg_color, バーの色: colors.topbar_bg_color }); contactWin.contact = evt.rowData.contact; Ti.UI.currentTab.open(contactWin, { アニメート: true }); });
これは通常、連絡先の詳細と連絡先リストの間を数回行ったり来たりしない限り、デバイスで機能します。その後、クラッシュします。
クラッシュ ログは次のとおりです: http://gist.github.com/557988
クラッシュ ログから、行ったり来たりしていたときに、メモリを節約するために実行コンテキストを強制終了する必要があると判断されたようです。しかし、その時点で、イベント リスナーを削除しようとするとクラッシュするようです。イベントリスナーで何か変なことをしているとは思いません。この問題をデバッグする方法を知っている人はいますか? 前もって感謝します。