2018年1月23日火曜日

AndroidStudio を Ununtu 17.10 にインストール

インストール

1. 公式ダウンロードページ から .zip ファイルをダウンロード

2. 適当なフォルダーを作って展開

~/ の下のほうが良い気もしたけど、公式の例に従いました…

sudo mkdir /usr/local/android-studio/ cd /usr/local/android-studio/ unzip ~/Downloads/android-studio-ide-171.4443003-linux.zip

3. ライブラリの追加

注: 64 ビット版の Ubuntu をご利用の場合は、以下のコマンドで 32 ビット用のライブラリをいくつかインストールする必要があります。

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6 64 ビット版の Fedora をご利用の場合は、以下のコマンドを実行します。

sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686

公式のインストールマニュアルには64bitの場合上記を実行しろと書かれているがエラーになる。

kiya@kiya-ubuntu:~$ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2.1.0 lib32stdc++6 -- 中略 -- E: パッケージ lib32bz2.1.0 が見つかりません E: 'lib32bz2.1.0' に一致するパッケージは見つかりませんでした E: 正規表現 'lib32bz2.1.0' ではパッケージは見つかりませんでした

4. lib32bz2.1.0 はなくても行けそうなので除外してインストールする。

kiya@kiya-ubuntu:~$ sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6

5. PATH の設定

vi ~/.profile
# Android SDK export ANDROID_HOME=${HOME}/Android/Sdk if [ -d "${ANDROID_HOME}/platform-tools" ] ; then PATH="${ANDROID_HOME}/platform-tools:$PATH" fi

エミュレーターを起動しようとするとエラーになる

9:24 Emulator: libGL error: unable to load driver: i965_dri.so 9:24 Emulator: libGL error: driver pointer missing 9:24 Emulator: libGL error: failed to load driver: i965 9:24 Emulator: libGL error: unable to load driver: swrast_dri.so 9:24 Emulator: libGL error: failed to load driver: swrast 9:24 Emulator: X Error of failed request: BadValue (integer parameter out of range for operation) 9:24 Emulator: Major opcode of failed request: 152 (GLX) 9:24 Emulator: Minor opcode of failed request: 24 (X_GLXCreateNewContext) 9:24 Emulator: Value in failed request: 0x0 9:24 Emulator: Serial number of failed request: 56 9:24 Emulator: Current serial number in output stream: 57 9:24 Emulator: Process finished with exit code 1

デバッグ表示付きでエミュレーターを実行してみる

※ -avd 仮想端末名 (スペースを含む場合は _ に置き換える)

kiya@kiya-ubuntu:~/Android/Sdk/tools$ LIBGL_DEBUG=verbose ./emulator -avd 'Nexus5X' libGL: Can't open configuration file /home/kiya/.drirc: そのようなファイルやディレクトリはありません. libGL: pci id for fd 17: 8086:5912, driver i965 libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/i965_dri.so libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/i965_dri.so libGL: dlopen /usr/lib/x86_64-linux-gnu/dri/i965_dri.so failed (../emulator/lib64/libstdc++/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/lib/x86_64-linux-gnu/dri/i965_dri.so)) libGL: OpenDriver: trying ${ORIGIN}/dri/tls/i965_dri.so libGL: OpenDriver: trying ${ORIGIN}/dri/i965_dri.so libGL: dlopen ${ORIGIN}/dri/i965_dri.so failed (${ORIGIN}/dri/i965_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません) libGL: OpenDriver: trying /usr/lib/dri/tls/i965_dri.so libGL: OpenDriver: trying /usr/lib/dri/i965_dri.so libGL: dlopen /usr/lib/dri/i965_dri.so failed (/usr/lib/dri/i965_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません) libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so libGL: dlopen /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so failed (../emulator/lib64/libstdc++/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)) libGL: OpenDriver: trying ${ORIGIN}/dri/tls/swrast_dri.so libGL: OpenDriver: trying ${ORIGIN}/dri/swrast_dri.so libGL: dlopen ${ORIGIN}/dri/swrast_dri.so failed (${ORIGIN}/dri/swrast_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません) libGL: OpenDriver: trying /usr/lib/dri/tls/swrast_dri.so libGL: OpenDriver: trying /usr/lib/dri/swrast_dri.so libGL: dlopen /usr/lib/dri/swrast_dri.so failed (/usr/lib/dri/swrast_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません) libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 152 (GLX) Minor opcode of failed request: 24 (X_GLXCreateNewContext) Value in failed request: 0x0 Serial number of failed request: 56 Current serial number in output stream: 57

どうやら、../emulator/lib64/libstdc++/libstdc++.so.6 のバージョンが違うと言っているらしい。

インストール時に入れたライブラリへのリンクを貼る

# 念の為保存 cp /home/kiya/Android/Sdk/emulator/lib64/libstdc++ /home/kiya/Android/Sdk/emulator/lib64/libstdc++.bak # 公式の指示でインストールしたライブラリへのリンクを貼る ln -sf /usr/lib32/libstdc++.so.6* /home/kiya/Android/Sdk/emulator/lib64/libstdc++/