Ubuntu 14.04版64ビットマシンでandroidのadbが実行できない問題を解決

1463 ワード

問題の説明
公式サイトから64ビットシステム下のパッケージ「adt-bundle-linux-x 86_64-20140702.zip」をダウンロードし、解凍後、adbを実行すると以下のエラーが発生します.
thomaspc@thomaspc:~/bins/androidsdk/sdk/platform-tools$ sudo ./adb 
sudo: unable to execute ./adb: No such file or directory

もんだいぶんせき
1.意外にも、googleが提供する64ビットパッケージには、32ビットの実行可能プログラムが含まれており、以下の方法で検証されています.
thomaspc@thomaspc:~/bins/androidsdk/sdk/platform-tools$ file adb 
adb: ELF 32-bit LSB  shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
thomaspc@thomaspc:~/bins/androidsdk/sdk/platform-tools$ 

2.実行できないのは、64ビットシステムで32ビットプログラムの実行に必要なライブラリが提供されていないためです.adbに必要なライブラリファイルを表示し、次のコマンドを実行できます.
thomaspc@thomaspc:~/bins/androidsdk/sdk/platform-tools$ sudo objdump -x adb |grep NEEDED
  NEEDED               librt.so.1
  NEEDED               libdl.so.2
  NEEDED               libpthread.so.0
  NEEDED               libstdc++.so.6
  NEEDED               libm.so.6
  NEEDED               libgcc_s.so.1
  NEEDED               libc.so.6

ファイルの解決方法
32ビットで欠落しているライブラリをインストールすることで解決します.Ubuntu 13.10の後、次のコマンドを実行する必要があります.
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1
以前のバージョンであれば、次のコマンドを実行して解決できます.
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5