AIR for AndroidでSDカードに移動できないっ!

スマホは携帯端末なので本体のメモリーが少ない。なので容量を圧迫するアプリはSDカードにインストールするのが一般的のようだが、なぜか作ったAIRアプリ「Mersenne」ではできない。AdobeAIR本体(Mersenneを動かすためのプラグイン的なもの)ですら移動できるのにっ!

Adobeのヘルプを見に行くと何やらパーミッションとやらを設定しないとならないらしい。

 Adobe AIR * Android の設定

Flash CS5.5のファイルメニュー>AIR for Android 設定>権限の「アプリケーション記述ファイルへの権限およびマニフェストの追加を手動で管理します」にチェックを入れる。こうするとパブリッシュ(apkファイル生成)時にXMLファイルを上書きしなくなる。ただし今後はFlash上で設定を変更してもバージョンナンバーやその他もろもろが変更されなくなる。バージョンナンバーを変更したり権限を追加/削除する際は自分でXMLファイルをいじらないといけないので注意が必要。もちろん編集の度にバックアップは忘れずに。

あとはXMLファイルをUTF-8/CR・LF対応のテキストエディタ(私はTeraPadを愛用)で開いて直接編集すればいいようだ(ちなみにFlashで生成されるXMLはUTF-8/改行コードLF)。

  

私の作ったMersenneはAdSence表示のため「ネットワーク通信」の権限を許可しないとならないので、

<android>
  <manifestAdditions>
    <![CDATA[<manifest>
        <manifest android:installLocation="preferExternal"/>
        <uses-permission android:name="android.permission.INTERNET"/>
      </manifest>
    ]]>
  </manifestAdditions>
</android>

と、<uses-permission~> を残したまま <manifest> ~ </manifest> 間にまんま追記してみた。

しかしパブリッシュし直してもSDカードに移動できない。なぜか動作確認用の中華タブレットはできるようになったのだが、相変わらずHTC EVO WiMAX ISW11HTでは「SDカードに移動」のボタンが押せなくなっている。ぐぬぬ。

モヤモヤしたまま仕事に出かけ、帰宅後に腕組みしながらXMLファイルを開いて眺めていたらあることに気がついた。なんか<manifest>がカブってね? 試しに以下のように記述し「preferExternal」の後ろのスラッシュも抜いてみた。

<android>
  <manifestAdditions>
    <![CDATA[
      <manifest android:installLocation="preferExternal">
        <uses-permission android:name="android.permission.INTERNET"/>
      </manifest>
    ]]>
  </manifestAdditions>
</android>

今度は無事SDカードへのインストールができた!なんだSDカードインストールの許可を与えるためのinstallLocationをmanifestの属性として書かないとダメだったのね・・・XMLは独自ルールでいくらでも書けるからキライだー。

それはそうと、こないだようやくAndroid SDKを開発マシンにインストールしてみた。いままでFlashのみでapk生成して実機でテストしていたので。スマホ歴1年でJavaすらロクにいじくったことのない私だが、そんなんでも独学でAIRアプリが開発できてしまうFlash CS5.5おそるべし。

created by Rinker
アドビ
¥28,800 (2024/04/18 17:23:02時点 Amazon調べ-詳細)

Mersenne公開中

いい加減作ったアプリMersenneの紹介ページでも作らないと、と思っているのだが持病の神経痛の悪化でブログの更新すら億劫。

しかしギーク御用達の情報サイトGIZMODEの姉妹サイトであるTABROID(タブロイド)さんにこのアプリを取り上げてもらった。↓
 「数学も萌えれば好きなれる!
 数字大好き「メルセンヌ」お嬢と遊ぼう」

おかげで公開してから全く相手にされなかったものが急激にDLされまくり始めたので、何か書いとかないとと慌てて更新。

上記の記事でとても好意的に取り上げてもらい、うれしくてそのまま外に飛び出し両手広げてわーいわーいと走り回りたくなったが、幸か不幸か神経痛で動けない。とはいえ自分で作りながら正直こんなん萌えんのか?と思っていたのもあるし、妹や姪に見せても散々不評だったので本当にうれしい。コンタケさん、ありがとう。

そもそもは某掲示板で冗談でiPhoneのCMっぽく

>>18 名無しさん (LeS6oarb) 09/04/08(水) 10:31 (1)

 ( ´∀`)「この世の中ムダばっかりじゃないのか?」
 ( ´∀`)そんな風にイライラしたときにはこの「メルセンヌ」
 ( ´∀`)あなたの代わりにょぅι゙ょがたどたどしく素数を数えて
 ( ´∀`)とりあえずマターリすることができます
 ( ´∀`)あなたの生活のちょっとしたスパイスに、このiPhoneを

などと書いたのがきっかけ。今年になってようやくAdobeのCS5.5を買い、Flashだけでアプリが作れると聞いたのでチャレンジしてみたのだった。

しかし昔仕事でActionScriptやJavaScript書いていたから何とかなると思っていたら大間違い。噂には聞いていたがAS3に大苦戦。動かないわ動いてもエラーを吐くわカクカクするわでなんだこりゃ状態。そもそも作ろうとするものが自分のプログラミング能力の限界を超えていた。そのためただ寝るだけの動作に2週間かかったり、数週間かけて組んだプログラムを全部やり直ししたりとか四苦八苦。仕事の空き時間にネタ探ししたり、絵やデザインも何度も描き直した(一人で全部やっているので)。

とはいえダラダラやり続けるといつまでも公開できないと思い、期限を決めて足掛け2ヶ月で公開できるレベルにこぎつけた。いまだどうやって直せばいいのかわからないところが多いのだけれど、解決できるところから追々直すつもり。AIR依存じゃないネイティヴアプリにしたり、iOS版作ったり、声を入れてみたいと夢は広がるけれど今のところは保留で。

ところでこのアプリの最初のコンセプトはいかに無駄で無意味なことに全力投球するか。そもそも素数を数えて何が楽しいか自分でもよくわからない上、正直言うと私は数学がキライなのだ。

でもさすがに無意味すぎると誰もDLしてくれないと思ったので、小話とか入れてタテマエ的には数学が好きになれるかもしれないアプリとして作ってみた。実際小話ネタを探して調べてみると数字の面白さを再認識し、いつかは私も微分積分を勉強し直したいと思ったりもした。というのも私は暗算は苦手だったけれど、小中までは数字や数学記号が好きだったはずだ。でも文●省の学習指導要領というノルマを課せられた数学教師に数字の面白さを潰されたような気がする。おかげでΣやθなどのギリシャ文字にいまだ拒否反応を示してしまう。

数学ギライを国や教師のせいにするのはよくないけれど、でもこのアプリが数学に興味を持つキッカケになるといいなぁと思ったりしないでもないでもなかったり。そんな風に単なるジョークアプリに意義を求めてしまうのはやはりジジイ化してる証拠か・・・まあ作った本人すら目的があやふやになったので、多分ナデナデしたりデコピンして日頃のストレスを発散するのがこのアプリの正しい使い方だと思う。もう、好きにしちゃって。

Androidアプリ「Mersenne」完成!

長々と、ほぼ秘密裏に作っていたAndroidアプリがついに完成・・・その名は Mersenne(メルセンヌ)!

https://play.google.com/store/apps/details?id=air.Mersenne

AdobeのFlash CS5.5を使ってActionScript3を初めていじるところからほぼ2ヶ月でなんとか完成。別途Adobe AIRが必須になるけれど、ともかくちゃんと動く(と思う)ものができた。もしかすると不具合があるかもしれないけれど、とりあえずAndroid端末を持っている人はインストールしてみて感想をお願いします。広告は表示されるけど、無料です。

Spring has come

まだ火鉢に炭は焚いているが、日中はだいぶ過ごしやすくなった。夏場だとガンガン踏みしめようが次から次へ生えてくる雑草も、この時期は儚げな感じ。踏まないよう地面ばかり見ている。

春の完成を目処にここ数ヶ月ずっと作っていたアンドロイドアプリがもうじき公開できそう。残すところスプラッシュ用画像1枚で、すでにGoogle Play(旧Androidマーケット)にはデベロッパー登録済み。あともうちょい。がんがろう。