MacでAndroidアプリを作りたいと思い、AndroidStudioを導入しました。
このサイトを参考に環境構築していったのですが、エミュレーターでのデバッグが実行できなくて困ってしまいました。
エミュレーターは起動するものの、以下のようなダイアログが出てきてデバッグが実行できませんでした。
また、
java.io.IOException: Unable to open sync connection!
Error while Installing APK
というエラーも発生しました。
ですがなんとか対処してデバッグを実行できたので、その方法を書いていきます。
環境
- MacOS 10.13.3
- Android Studio 3.0.1
1.AndroidStudioの設定変更
上メニューの「AndroidStudio」から「Preferences」を選択します。
ウィンドウの左メニューの「Build,Execution,Deployment」から「Instant Run」を選択します。
そこにある、「Enable Instant Run to hot swap code/resource changes on deploy (default enabled)」のチェックを外します。
2. adbコマンドを使えるようにする
Android Debug Bridge(adb)は、エミュレータ インスタンスや接続された Android 端末と通信できる用途の広いコマンドライン ツールです。また、アプリのインストールやデバッグなどのさまざまな端末アクションを支援し、エミュレータや接続された端末でさまざまなコマンドを実行するときに使用できる Unix シェルへのアクセスを提供します。 https://developer.android.com/studio/command-line/adb.html?hl=ja
ターミナルでadb
したときに、adb: command not found
が出た場合は、adbコマンドを使えるようにしなければなりません。
adbコマンドを使えるようにするには、シェルの設定ファイルに環境変数を設定します。
その前に、AndroidSDKの場所を確認します。
AndroidStudioで、上メニューの「File」から「Other Settings」>「Default Project Structure」を選択します。
出てきたウィンドウの「Android SDK location」にあるパスがAndroidSDKの場所です。
次に、設定ファイルに環境設定ファイルを設定します。
設定ファイルは使っているターミナルがbashであれば.bash_profile
、zshであれば.zprofile
です。その他は検索してください…。
設定ファイルをテキストエディタで開いたら、
export PATH=$PATH:/Users/xxx/Library/Android/sdk/platform-tools
を追加します。パスにplatform-tools
を追加するのを忘れないように。
また、パスは適宜自分の環境に合わせて変えてください。
その後、
source ~/.bash_profile
を実行して設定ファイルを更新します。
3. platform-tools以下のファイルをroot権限にする
sudo chown -R root: /Users/xxx/Library/Android/sdk/platform-tools/*
4. adbサーバーを再起動
以下のコマンドをMacのターミナル上で実行します。
sudo /Users/xxx/Library/Android/sdk/platform-tools/adb kill-server
sudo /Users/xxx/Library/Android/sdk/platform-tools/adb start-server
5. Macの再起動
Mac自体も再起動します。
これでデバッグが実行できると思います。
参考
adbをMacのターミナルで使えるようにする
Must do adb kill-server and start-server everytime to recognize android device in Ubuntu