Flash/FlashDevelopでAirforAndroid
目次
androidエミュレータインストール
AndroidSDK http://developer.android.com/sdk/index.html
- android/エミュインストール編 [ショートカット]
FlashDevelopのandroidプロジェクトテンプレートのインストール
以下へ解凍した"165 ActionScript 3 - AIR AS3 Projector for Android"dirをそのまま入れる
C:\Documents and Settings\usrxxxx\Local Settings\Application Data\FlashDevelop\Projects (ツール/アプリケーションファイルで開くことも可能)
android用AirSDKを作成
以下をダウンロード
Flex4.1SDK http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex4sdk
AirSDK http://www.adobe.com/products/air/sdk/
- "FlexSDK4.1ディレクトリ"を"AirSDKディレクトリ"で上書きし、ディレクトリを"flex_sdk_4.1_and_air_sdk"などとリネームしておく。
- パスを通す。(設定/コントロールパネル/システム/詳細設定/環境変数/Pathに";D:\flex\flex_sdk_4.1_and_air_sdk\bin"を追加)
swfファイル作成
- FlashDevelopの新規プロジェクトからair for androidテンプレートでプロジェクトを作成する
- プロジェクト/プロジェクトの設定/書き出しプレイヤーバージョンをFlashPlayer10.1に設定する
- プロジェクト/プロジェクトの設定/コンパイラー設定/CustomPathtoFlexSDKに"D:\flex\flex_sdk_4.1_and_air_sdk"などと設定する(最後にbinはつけない)
(error)FlashPlayerを待ってデバッガーに接続します。と出る場合↓
- 最上部リンクよりflex_sdk_4.1をダウンロードする。(http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4からダウンロードしたflex_sdk_4.1.0.16076_mplでは同メッセージが出る
- sdkが適切に指定されてないので、sdkのパスを確認する
- fdプロジェクト(~.as3proj)をテキストエディタで開き、testMovieCommandに適切なsdkが指定されているか確認する
- application.xmlのcontentタグにbin/が含まれていれば削除
証明書を作成
- プロジェクト内にできている、CreateCertificate.batを実行する
- SelfSigned.p12の証明書ができる
apkファイルを作成する
- application.xmlをメモ帳で開き以下のように変更(ここはビルドデバッグができなくなるのでapkを作ったら戻す
<content>android.swf</content> ←変更前 <content>bin/android.swf</content> ←変更後 <image72x72>icons/icon_72.png</image72x72> ←削除
- メモ帳に以下を記述し、ApkDebug.batにファイル名を変更(デバッグ用
adt -package -target apk-debug -storetype pkcs12 -keystore SelfSigned.p12 apk/android.apk application.xml -C bin .
- メモ帳に以下を記述し、ApkEmu.batにファイル名を変更(エミュレータ用
adt -package -target apk-emulator -storetype pkcs12 -keystore SelfSigned.p12 apk/android.apk application.xml -C bin .
- メモ帳に以下を記述し、ApkRelease.batにファイル名を変更(リリース用
adt -package -target apk -storetype pkcs12 -keystore SelfSigned.p12 apk/android.apk application.xml -C bin .bin/android.swf
- ApkDebug.batを実行
- パスをfdと入力
上記方法でapkが作れなかったら、PackageAssistantProでapkファイルを作成する
- PackageAssistantProをインストール http://dl.dropbox.com/u/117996/applications/AIR2/PackageAssistantProWin.zip
- 出てきたフォームに以下のような感じで入力
-java.exe? C:\Program Files\Java\jdk1.6.0_17\bin\java.exe -adt_jar fro air 2.5? D:\flex\flex_sdk_4.1_and_air_sdk\lib\adt.jar -certificate?(作った証明書ファイルを指定 D:\home\flex\Android\SelfSigned.p12 -xml file(作ったapplication.xml(いったんbrowserボタンを押さないと先に進めない D:\home\flex\Android\application.xml -swf file(作ったswf(いったんbrowserボタンを押さないと先に進めない D:\home\flex\Android\bin\Android.swf -cert pass(証明書作成時のパス fd(FlashDevelopで作った際のデフォルトパス -apk dir D:\home\flex\android\apk
(error)Could not load keystore file or password is incorrectが出る場合↓
- 上のadt_jar fro air 2.5?は"~\adt.jar"まで入力する
(error).apk作成時にエラー↓
- PackageAssistantProのバージョンを0.3.1にしてみる
(error)your file is readyとでるが.apkが作成されない場合↓
- application.xml内のiconタグを削除
apkファイルをインストールする
- メモ帳で以下ファイルを作成し、ファイル名をAPK_DEPLOY.batに変更する
adb install -r D:/home/flex/android/apk/android.apk
- androidエミュレータを起動したままAPK_DEPLOY.batを実行
- successとなれば成功
(error)[INSTALL_FAILED_INVALID_APK]が出る場合は↓
- apkがリリース用となっているのでデバッグ用のapkをインストールする。上のapk作成でdebug用apkを作る
(erro)INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATESが出る場合は↓
- 署名が失敗しているので署名作成からやり直し。
- 一度android側でsetting/appilcation/application manageからインストールしたアプリを削除してみる
エミュレータにairをインストール
adb install -r D:/flex/flex_sdk_4.1_and_air_sdk/runtimes/air/android/emulator/Runtime.apk
おまけ
apk作成時にwarning : aplication has not specified its permission requirements in application.xmlが出る
以下をappilcation.xmlに追加
<application xmlns="http://ns.adobe.com/air/application/2.5"> <android> <manifestAdditions> <![CDATA[ <manifest> <!-- パーミッション情報--> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> </manifest> ]]> </manifestAdditions> </android> </application>
参考URL
http://blog.appforandroid.info/?tag=flashdevelop
http://www.hara3.net/blog/2010/06/air-for-android.html
http://www.flashdevelop.org/community/viewtopic.php?f=19&t=6994
Flex SDK を使用した最初の Android 用 AIR アプリケーションの作成 http://help.adobe.com/ja_JP/air/build/WS901d38e593cd1bac25d3d8c712b2d86751e-8000.html
スマホ向けアプリ開発の扉を開くAdobe AIR 2.5とは http://www.atmarkit.co.jp/fsmart/articles/airandroid03/03.html
FlashDevelopによるAndroidアプリの開発 http://www.saturn.dti.ne.jp/~npaka/flash/as30/HelloWorld_FlashDevelop_Android/index.html