Android デバイスでの Android アプリケーションの実行
目次
- 1 実行時におけるターゲット デバイスに応じたビューの選択
- 2 データとキャッシュのフォルダを空の状態にしてアプリケーションを実行する
- 3 トラブルシューティング
- 3.1 <APK ファイル> をインストールできません。Failure [INSTALL_FAILED_CONTAINER_ERROR]
- 3.2 [実行]ダイアログ ボックスの "アンインストール中" で停止する
- 3.3 Android 4.0/Kindle Fire メッセージ "Application does not support this device"(アプリケーションではこのデバイスをサポートしていません)の回避策
- 3.4 Android コンソール アプリケーションでは起動時に一時停止する必要あり
- 3.5 ファイル名に Unicode 文字が含まれている場合 Android アプリケーションを配置できない
- 3.6 Android アプリケーションを手動でアンインストールする
- 3.7 デバッグが開始しないまたはブレークポイントが無視される
- 3.8 アプリケーションが終了したときにデバッグが気づかない
- 4 関連項目
開発用システムを Android 開発向けに準備し、Android デバイスで USB デバッグを有効にし、Android デバイスを検出するようにシステムを構成したら、接続された Android デバイス上でマルチデバイス アプリケーションを実行することができます。
- デバイスの USB ケーブルを使って Android デバイスを開発用システムに接続します。
- [デバイス マネージャー]([コントロール パネル]から開くことができます)の[ポータブル デバイス]の下に、Android デバイスが表示されるはずです。
- 詳細は、「Android デバイスを検出するようにシステムを構成する」を参照してください。
- RAD Studio で、[ファイル|新規作成|マルチデバイス アプリケーション - Delphi] または [ファイル|新規作成|マルチデバイス アプリケーション - C++Builder]を選択します。
- [プロジェクト マネージャ]で、[Android]ターゲット プラットフォームを有効化(ダブルクリック)します。
- デバイスの Android SDK を以下の手順で有効化します。
- [プロジェクト マネージャ]で[Android]ノードを右クリックし、[プロパティ...]を選択します。
- [プラットフォーム プロパティ]で[SDK (ソフトウェア開発キット)]フィールドの下向き矢印をクリックし、次のいずれかを選択します。
- インストール済みの Android SDK バージョン(表示されている場合)
- [新規追加]
- [新規 SDK の追加]ダイアログ ボックスで、[SDK バージョンの選択]フィールドの下向き矢印をクリックし、インストール済みの Android SDK を選択します。
- [Android SDK の新規作成]ウィザードのフィールドをすべて入力します。ほとんどのフィールドは、ウィザードによって自動的に表示されます。
- Android デバイスを有効なターゲット プラットフォームにします。 [プロジェクト マネージャ]の[Android]ターゲット プラットフォームで、[ターゲット]ノードを開き、Android デバイスをダブルクリックします。
- Android デバイスが正常に接続されていると、ターゲット名[Android]の後に SDK バージョン番号が、たとえば次のように表示されます。
- Android - Android SDK 22.0.1
- ヒント: デバイスが表示されない場合には、以下の手順を試してください。
- IDE で[ターゲット]ノードを右クリックし、[更新]を選択します。
- [コントロール パネル]で[デバイス マネージャー]を開き、以下を行います。
- Android デバイスが表示されていることを確認します。通常は[ポータブル デバイス]以下にあります。
- デバイスが表示されていない場合には、任意のノードを右クリックし、[ハードウェア変更のスキャン]を選択します。
- 必要であれば[Android SDK Manager]を使って Android デバイスのデバイス ドライバをアンインストールし、それから再インストールします。[スタート|すべてのプログラム|Embarcadero RAD Studio Sydney|Android ツール] を選択します。
- 次の画像の[Android]の[ターゲット]ノードには、Nexus 10 デバイスが表示されています。
- Android デバイスが正常に接続されていると、ターゲット名[Android]の後に SDK バージョン番号が、たとえば次のように表示されます。
- [アプリケーション ストア]プラットフォーム構成を、プロジェクト マネージャの[構成]ノードで選択した場合、の[アプリケーション ストア]プラットフォーム構成用の署名証明書を、[プロビジョニング]ページで構成しておかなければなりません。 [Development]プラットフォーム構成の場合は、署名証明書は必要ありません。
- 以下の方法でアプリケーションを実行します。
- デバッガを使って実行([実行|実行]または
F9
) - デバッガを使わずに実行([実行|デバッガを使わずに実行]または
Shift+Ctrl+F9
)
- デバッガを使って実行([実行|実行]または
RAD Studio によって Android 用アプリケーションがビルドされ、選択した Android デバイス上で実行されます。Android デバイス画面がロックされている場合には、ロックを解除してアプリケーションにアクセスしてください。
実行時におけるターゲット デバイスに応じたビューの選択
Android アプリケーションの作成時に、さまざまなデバイスをターゲットにしたい場合には、フォーム デザイナでビューを指定することができます。
アプリケーションを Android デバイスで実行すると、ランタイムはデバイスに問い合わせをしてディスプレイのサイズとピクセル密度を確認します。その後、アプリケーションの使用可能なビューの中から、最も近いビューを決定します。このビューが選択され、デバイスによって指定された正確なサイズに合わせてサイズ変更されます。
ビュー選択のアルゴリズムや、各 Android ビューに一致するサイズの範囲については、「FireMonkey ビューの使用」を参照してください。
FireMonkey ビューの詳細は、以下を参照してください。
- ビュー セレクタ(「フォーム デザイナ」トピック)
- FireMonkey ビューの使用
データとキャッシュのフォルダを空の状態にしてアプリケーションを実行する
Android デバイスでアプリケーションを実行すると、RAD Studio は、アプリケーションを一意に識別できるよう[バージョン情報]オプション ページで定義した package
名を使って、デバイスにアプリケーションをインストールします。デフォルトでは、package
名は com.embarcadero.$(ModuleName)
です($(ModuleName)
はプロジェクトの名前。"Project1" など)。
実行したいアプリケーションと同じ package
名のアプリケーションが既にインストールされたデバイスでアプリケーションを実行する場合、[実行]コマンドを起動するとアプリケーションが再インストールされますが、更新されるのはアプリケーションの実行可能ファイルだけです。アプリケーションのデータ フォルダとキャッシュ フォルダは更新されません。アプリケーションのデバッグ/配置を連続して繰り返す必要がある場合、データ フォルダとキャッシュ フォルダの保存は開発中に問題になる可能性があります。
[デバッガを使わずに実行]および[実行]のアクションによって、既にインストールされているアプリケーションのバージョンをデータおよびキャッシュのフォルダも含めて完全にアンインストールするよう、RAD Studio を構成することができます。それを行うには、新しいバージョンをインストールする前に以下の手順を実施します。
- [実行|実行時引数...] を選択します。
- "-cleaninstall" を [パラメータ]フィールドに入力します。
- [OK]をクリックして、変更を保存します。
トラブルシューティング
<APK ファイル> をインストールできません。Failure [INSTALL_FAILED_CONTAINER_ERROR]
[プロジェクト|オプション...|バージョン情報]を選択し、"installLocation" の値を[auto]に変更します。
詳細や別の解決方法については、「What does this mean: Failure [INSTALL_FAILED_CONTAINER_ERROR ]?(Failure [INSTALL_FAILED_CONTAINER_ERROR] の意味は?)」を参照してください。
[実行]ダイアログ ボックスの "アンインストール中" で停止する
Android 4.2.2 以降を動作させていて、[実行]または[デバッガを使わずに実行]をクリックしたときに、RAD Studio が以下の画面から進まなくなった場合には、お使いのそのコンピュータについて USB デバッグを有効にする必要があるかもしれません。
また、デバイスで一般的な USB デバッグ設定を有効にする必要もあるかもしれません。その場合には、USB デバッグを許可するかを尋ねるダイアログ ボックスがデバイスに表示されます。
[OK]をクリックして USB デバッグを許可します。
誤って[キャンセル]をクリックしてしまった場合は、デバイスを PC から接続解除して接続し直すと、デバイスにそのダイアログ ボックスが再び表示されます。
Android 4.0/Kindle Fire メッセージ "Application does not support this device"(アプリケーションではこのデバイスをサポートしていません)の回避策
Android 4.0.x 搭載のデバイス(一部の Amazon Kindle Fire デバイスを含む)で Android アプリケーションを実行しようとすると、次のようなメッセージが表示される可能性があります。
Application does not support this device
この問題を回避するには:
- IDE で配置マネージャ([プロジェクト|配置])を開き、次のエントリを見つけます。
- [ローカル名]: libnative-activity.so
- [リモート パス]: library\lib\armeabi\
- このエントリのチェック ボックスをオフにして、このファイルが配置されないようにします。
Android コンソール アプリケーションでは起動時に一時停止する必要あり
Android コンソール アプリケーションを実行すると、デバッガが起動する前にアプリケーションが最後まで実行してしまう可能性があります。この問題を避けるには、コードの先頭に sleep コマンドを追加することをお勧めします。以下に例を示します。
sleep(3000)
問題となっているアプリケーションに効果があるスリープ時間(ミリ秒単位で指定)はターゲット デバイスの全体的なパフォーマンスによって決まります。つまり、低速のハードウェアでは必要な待ち時間が長くなります。
ファイル名に Unicode 文字が含まれている場合 Android アプリケーションを配置できない
配置対象に Unicode 文字のファイルが含まれている場合、Android アプリケーションはデバイスで起動しないおそれがあります。たとえば、"test試験.txt" という名前のファイルを Android への配置対象に追加した場合は、黒い画面だけが現れ、アプリケーションが閉じます。このようなことが起こるのは、名前に Unicode 文字が含まれているファイルは無視され、Android の .apk ファイルに追加されないからです。配置が不完全なため、アプリケーションの実行が失敗します。
Android アプリケーションを手動でアンインストールする
Android アプリケーションを手動でアンインストールするには:
- デバイス上の設定メニューに移動します:[設定|Apps または アプリケーション マネージャ(これは、お使いのデバイスによって異なります)。
- アンインストールしたいアプリケーションにタッチします。
アンインストール
をタッチします。
デバッグが開始しないまたはブレークポイントが無視される
特定の状況で、デバッグが開始しなかったりブレークポイントが無視される場合があります。 原因は、application manifestファイルの installLocation パラメータの値が、preferExternal
に設定されているためかもしれません。このパラメータは、IDE の[プロジェクト|オプション...|バージョン情報]で変更できます。これを auto
に設定し、内部ストレージに十分な空き領域があることを確認してください(空き領域が足りなければアプリケーションは外部ストレージにインストールされます)。
アプリケーションが終了したときにデバッグが気づかない
デバッガが、アプリケーションが終了したことを検知できていないように見えるかもしれませんが、これは正常な動作です。各 Android アプリケーションは、各自の Linux プロセス内で実行されており、このプロセスは必要なくなるまで、もしくはシステムがメモリを回収する必要がでてくるまで実行し続けます(詳細については、https://developer.android.com/guide/topics/processes/process-lifecycle.html をを参照してください)。アプリケーションのプロセスが実行し続けるため、デバッガ自身がハングしたように見えるかもしれませんが、実際にはデバッガは実行され続けているプロセスをデバッグし続けています。デバッガ内でこのプロセスを終了させるには、[終了] をクリックしてください。