新年そうそうはまってしまいました。
Windows専用に作っていた教育用ドリルソフト(CAIMST)、もともとは<垂>さんがDOSで作っていた物を、私が引き継いで、Windows版を、Delphi 3.1で作成したのが最初です。
これをAndroidでも動作させたい、また少しバージョンアップしたいと思い、とりあえず、まずは実際にコンパイルできるかどうかのテストもしたかった。
- Windows用のアイコンからアイコン畑を使って、各大きさのものを作成。Android用にpngに変更。
- マルチアプリケーションの新規作成します。
- Optionで、アイコン、コンパイル関係フォルダを登録
- Optionで、バージョン情報を登録
- 簡単な枠だけ作ってとりあえず、コンパイル
で、もちろん、Windows版は問題無くコンパイル完了。
メインコンピュータに接続したAndroidは、DignoDual2(4.2.2)、NEXUS5X(6.0.1)で、2つともDelphiのプロジェクトマネージャーのAndroidのターゲットには問題無く表示されている。
次に、ターゲットをAndroidでコンパイル。何と、Failure[INSTALL_FAILED_INVALID_APK]とプロセスを生成できませんとのこと。
ここからが長かった。まずは、Delphiのヘルプを確認、また、スマートフォンとの接続がうまくいっていないのではないかと思い、USBドライバの確認や、スマートフォン側の設定の確認、そしてサイトでの検索確認。再度、Android SDKの設定が悪いのかと再度チェック。
しかし、どうしてもわからない。
もう一度、初心に戻って、マルチアプリケーションを新規作成した状態で、何も触らずに、コンパイル。
すると、何と、全く問題無くコンパイル完了。あれれれ….
とすると、ハードウェア的な問題ではなく、上で箇条書きにした部分での問題ということがここでやっとわかった。
結局、添付画像のバージョン情報の[package]の内容が悪かったことがわかった。
Delphiのhelpの説明では、一意となるユニークな名前ということだったので、自分のソフト名だけにしたのだが、これが間違いだった。確かに、デフォルトは、com.embacadero.$(ModuleName)という感じだった。ここで、おかしいなと思ったらよかったのだけど、初めてのことだったので、さっさとcom.embacaderoを消したのがわるかった。
いろいろと調べてみると、Androidの世界で一意にならないといけないので、最初に自分の所有ドメインが1番いいのだとか。つまり、パッケージをインストールするためには、ドメイン風のpackage名になってないといけないらしい。
で、jp.yoriki.$(ModuleName)とすることによって無事に解決。
今日、1日、これだけで終わってしまった。

delphi, option