どうも、けーすけです。
すごく久しぶりにAir for Androidを使ってスマホアプリの機能デモというかモック的なものを作ろうとしたらはまったことのまとめです。
0.Android端末のデバッグモードが見つからない
最近のAndroid OSはデバッグモードが隠されているらしい。
デバッグを行いたい端末の「設定」→「端末情報」に行き、「ビルド番号」を鬼のようにタップ(7回?)。
途中、「あと一回で開発者になれますよ!」とかいうふざけたダイアログが表示されたら、閉じてもう1回タップすれば開発者用のメニューが表示される(「設定」→「開発者向けオプション」)。
今回はUSBデバッグを行いたかったのでUSBデバッグを有効にした。他は必要に応じて。
1.そもそもAndroid端末が認識されない
Flash Builder 4.7のUSBデバッグで一覧にすら現れない現象は、Windows OSの場合は大体、USBドライバのインストールに失敗している。
Adobeのヘルプ記事を参考にデバイスリストを追加して、再度インストールすればいい。が、ちょっと書き方が不親切。
[Google.NTx86]と[Google.NTamd64]に関しては、32bitか64bitにあわせて記載すればいいと思うが、間違えてもあれなのでわたしは両方に記載した。
また、記述を追加するだけではインストールに失敗するので、デバイスマネージャーから
手動で、「ドライバーの更新」ボタンをクリックしてインストールする(上記ダイアログは正常にインストールされたもの)。
ドライバーは自動検索ではなく、「コンピューターを参照してドライバーソフトウェアを検索します」を選択し、
<Adobe Flash Builder 4.7 Home>\utilities\drivers
を入力(サブフォルダも検索)すればインストールできる。ウィルス対策ソフトなどが発行元云々で警告を出すので、インストールをする。
2.認識されるがオフラインになっている
Android4.2以降(?)の端末では、デバッグ方式が異なるらしく、Flash Builder標準のAIR SDKでは端末が認識出来ないことがあるらしい。
hiiragi大先生のAIR for Androidで、デバイスをちゃんと接続しているにも関わらず認識されないを参考に、対処する。
わたしはWindows OSなので、大人しくAIR SDKを上書きで更新することにする。
- AIR SDKを公式からダウンロードしてくる
- <Flash Builder Home>\eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722内のAIRSDKをAIRSDK.backなどとリネームしてバックアップを取る(念のため)
- ダウンロードしてきたアーカイブの中身をAIRSDK\内にコピー(上記方法でリネームしていた場合
- AIRSDK\lib\aot\bin内にstripフォルダがない場合はstripフォルダを作成
これで端末がオフラインになるのは解消されるはず(されない場合は端末を再起動するなどしてみる)
3.今度はなんだかBuildが通らない
AIR SDKを更新した場合、ApplicationName-app.xmlの記述を書き換えないと、
error 305: Intial window content SWF version *** exceeds namespace version
のような、error 305が発生してbuildが通らない、端末に転送できない、といった現象に遭遇する。
これはApplicationName-app.xmlの2行目の
<application xmlns=”http://ns.adobe.com/air/application/***”>
***のバージョンをAIRSDKのバージョンに揃えてやることで解消する。
今回はFlash PlayerとAIRのバージョンを揃えた後の18.0.*系なので
<application xmlns=”http://ns.adobe.com/air/application/18.0″>
に直してやるとBuildが通った(今後のバージョンアップで数値が変動)。
4.転送してデバッグしようとしたらJavaがエラーを出す
dx tool failed:Error: could not open `C:\Windows\jre\lib\amd64\jvm.cfg’
のようなエラーが発生して、実機デバッグが行えない(パッケージエラー)が発生する場合、大体はブラウザが32bit版で32bit版のJavaしかインストールされていない場合に発生する(あるいはChromeでJavaを許可していない場合など)。
Javaのマニュアルダウンロードページにアクセスして、64bit版をインストールすると解決する。
または、その他のdx tool failedが発生する場合もJREが不正なことが多いらしい(Tomcatインストールで環境が壊れた云々が海外フォーラムにあった)ので、一度システムにインストールされているJREを削除して、クリーンインストールで解決する可能性がある。
一通りはまりそうなところ全部にはまった感じがあったのでメモ。