Skip to content

Latest commit

 

History

History
204 lines (135 loc) · 17 KB

Alloy_Debugging_and_Troubleshooting.md

File metadata and controls

204 lines (135 loc) · 17 KB

Alloy デバッグ・トラブルシューティング

本文書はAlloy Debugging and Troubleshootingの日本語訳です。

概要

本ガイドでは Alloy アプリケーションのデバッグとトラブルシューティングについて取り扱います。

デバッグ

Studio Debugger

Alloy アプリケーションのデバッグには Studio Debugger が使えます。Studio Debugger を使うことで、コードの中にブレイクポイントを設定して、ある特定の行を実行する直前でアプリケーションを一時停止し、変数やその値を調べることができます。Titanium Studio でデバッガーを使うためのより詳細な情報についてはDebugging in Studioを参照してください。

Alloy Controller や alloy.js でブレイクポイントを追加・削除するには、左側の行番号の左の空間をダブルクリックしてください。ブレイクポイントを設定すると、青いドットが表示されます。これらのブレイクポイントは、Resources ディレクトリに生成される Titanium ファイルのコードにひも付きます。

app ディレクトリにある CommonJS や Alloy のモデルファイルに設定されたブレイクポイントは、デバッグ時に無視されます。これらの要素にブレイクポイントを設定するには、Alloy CLI で生成された Titanium のファイルにブレイクポイントを設定する必要があります。CommonJS のモジュールは Resources ディレクトリにコピーされ、 Alloy Model の生成されたファイルは Resources/alloy/models ディレクトリに配置されます。

App Explorer ビューで Resources フォルダが隠れている場合は、 View Menu ボタン(白い下向きの三角形)をクリックして、 Customize Views を選択して ... Available Customization ダイアログを表示してください。 Filters タブで Titanium Resources Folder のチェックボックスを外し、 OK ボタンをクリックしてください。 App Exploer ビューで Resources フォルダが表示されるはずです。

Resources ディレクトリ内のファイルに対して設定されたブレイクポイントは、app ディレクトリ内のファイルを編集した場合、削除されたり、適切な行に紐付かなくなる場合があります。コードをコンパイルした後に、 Resources ディレクトリ内のファイルに設定したブレイクポイントがそのまま設定されていて、正しい場所(行番号)にあることを確認して下さい。正しく設定されていなかった場合は、ブレイクポイントを再設定して、デバッグモードでプロジェクトに戻ってください。

App Explorer ビューで Application をデバッグする準備が整ったら、 Debug ボタン(フォルダに緑の虫がついたボタン)をクリックしてデバッガを起動し、プラットフォームを選択してください。コードのコンパイルが開始される前に、 Perspective の切替の確認画面が表示されるので、 Yes をクリックしてください。

Debug Perspective では、コードに対してステップイン、停止、再開するための Debug ビューを利用することができます。code の実行が停止されている間、 Variables ビューで現在の変数とその値を見ることができます。

Alloy Release 1.1.0, Studio 3.1.0 以前のバージョンでは、ブレイクポイントを Controller のコード (app/controllers) に作成すると、ブレイクポイントが無視されます。代わりに Resources/alloy/controllers ディレクトリにある、生成された Titanium のコードに対してブレイクポイントを設定してください。

コンパイラのエラーメッセージ

Alloy のコンパイラは JavaScript, JSON, TSS, XML ファイルの syntax error に対してエラーメッセージを生成します。エラーメッセージには、エラーの発生したファイルと行、文字の場所と、説明が含まれます。

Titanium Stadio では、これらのエラーメッセージが Console ビューに出力されます。

トラブルシューティング

[ERROR] No app.js found. Ensure the app.js file exists in your project's Resources directory.

Resources フォルダの一部コンテンツが削除されている場合は、 alloy compile --config platform=<platform> を実行してファイルを再生成してください。

Android: Images, HTML pages and other assets do not display

iOS や Mobile Web アプリケーションで asset が表示されていて、 Android では表示されていない場合は、 asset へのパスがスラッシュ ('/') で始まるようにする必要があります。iOS, Mobile Web プラットフォームは相対パスと絶対パスをサポートしていますが、Android プラットフォームは絶対パスしかサポートしていません。

Android Runtime Error: Uncaught TypeError: Cannot call method xxx of undefined

  1. iOS 専用の Titanium オブジェクトを作成しようとしているのかもしれません。View で platform 属性を利用して、platform 特有のオブジェクトを使ってください。
  2. View の top-level UI コンポーネントに ID が割り当てられている場合、つまり、XML のそのコンポーネントの ID 属性が設定されている場合、Controller はそのオブジェクトに参照するのに $.<controller_name> を利用することができません。割り当てた ID を利用してください。

Android Runtime Error: Uncaught ReferenceError: Alloy is not defined

Controller でない JavaScript のファイルは Alloy が自動読み込みされません。'alloy' モジュールを require する必要があります。詳細は Library Code を参照してください。

iOS Application Error: invalid method (xxx) passed to UIModule (unknown file).

Android 専用の Titanium オブジェクトを作成しようとしているのかもしれません。View の中で platform 属性を利用して、platform 特有のオブジェクトを使ってください。

iOS Application Error: undefined is not an object (evaluating $.xxx.open) (unknown file).

View の top-level UI コンポーネントに ID が割り当てられている場合、つまり、XML のそのコンポーネントの ID 属性が設定されている場合、Controller はそのオブジェクトに参照するのに $.<controller_name> を利用することができません。割り当てた ID を利用してください。

Mobile Web: Changes to code do not take effect

Mobile Web はコンパイラプラグインをサポートしていないので、Mobile Web アプリケーションは Titanium Stadio でビルドすることができません。Alloy を使って Mobile Web アプリケーションをビルドする場合は、 Alloy の CLI でコードをコンパイルする必要があります。

$ alloy compile --config platform=mobileweb 

Mobile Web: [ERROR] alloy run not supported by mobileweb

Mobile Web アプリケーションは CLI で実行できません。Titanium Stadio でプログラムを実行してください。

Studio: Unable to find alloy binary

おそらく Titanium Stadio への Alloy のインストールで問題が発生しているか、 alloy のバイナリに PATH が通っていません。Alloy がインストールされていて、 PATH (通常 '/usr/local/bin' にインストールされます) に存在することを確認して下さい。きちんとインストールされていない場合は、 Manual Installation instructions の指示にしたがってインストールしてください。

助けを求める

Titanium コミュニティのメンバーの支援を求めたり、過去に回答された質問から答えを探すには、 Titanium Community Questions and Answers Forum を利用してください。質問をする際は、タグに 'alloy' を入力し、プラットフォーム情報に Alloy のバージョンを入れてください。Alloy のバージョンはコンソールで alloy --version を実行すれば確認できます。

詳細は Using Questions and AnswersGetting Help を参照してください。

バグレポートを送る

既存の課題を探したり、バグレポートを送る場合は JIRA を利用してください。Titanium (Community) プロジェクトで、コンポーネントとして 'Alloy' を選択し、 environment 情報に Alloy のバージョンを入力して JIRA のチケットを作成してください。Alloy のバージョンはコンソールで alloy --version を実行すれば確認できます。

詳細は How to Submit a Bug Report を参照してください。