我已经在我的arch-linux安装上设置了android-studio。我是Android开发的新手,所以这是一个探索性的过程。
我遇到的问题是我无法运行AVD模拟器。查看stdout上的日志,我收到错误:
[ 37311] WARN - #com.android.ddmlib - error: could not install *smartsocket* listener: Address already in use
[ 37339] WARN - #com.android.ddmlib - '/home/parma/Android/Sdk/platform-tools/adb start-server' failed -- run manually if necessary
[ 37341] WARN - #com.android.ddmlib - ADB server didn't ACK
[ 37341] WARN - #com.android.ddmlib - * failed to start daemon *
[ 37341] WARN - #com.android.ddmlib - error: cannot connect to daemon
现在,当我在此时手动运行时,我得到相同的响应。
我检查了那个绑定到该端口的内容
$ ss -lpn | grep 5037
tcp LISTEN 0 4 127.0.0.1:5037 *:* users:(("adb",pid=22346,fd=7))
$ ps -aux | grep adb
parma 22346 0.0 0.0 167428 1932 ? Ssl 11:04 0:00 adb -L tcp:5037 fork-server server --reply-fd 4
parma 22668 0.0 0.0 10788 2216 pts/0 R+ 11:13 0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn adb
看来adb已经在运行了。
首先我尝试:
$ adb kill-server
* server not running *
所以我决定要杀掉这个过程。
$ kill 22346
$ ps -aux | grep adb
parma 23612 0.0 0.0 10788 2088 pts/0 S+ 11:32 0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn adb
$ ss -lpn | grep 5037
根据我是否尝试手动启动ADB服务器,或者是否尝试通过从IDE运行AVD仿真器来启动它,会发生两种不同的事情。
我手动启动:
$ adb start-server
* daemon not running. starting it now at tcp:5037 *
* daemon started successfully *
$ ss -lpn | grep 5037
tcp LISTEN 0 4 127.0.0.1:5037 *:* users:(("adb",pid=23685,fd=6))
当我尝试启动AVD时,我得到了相同的错误输出,我首先发布在这篇文章的顶部。
我再一次杀了这个进程,在确认adb或者没有其他进程在端口5037上运行后我尝试启动AVD
当我跑步时,没有任何事情发生。 IDE显示失败时显示的相同加载栏,但这次没有错误输出。
我检查一下它是否正在运行,我看到是这样我检查产生过程的原因:
$ ps -faux
...
parma 8953 0.0 0.4 603036 38756 ? Rsl Apr04 0:25 \_ /usr/lib/gnome-terminal/gnome-terminal-server
parma 8959 0.0 0.0 43612 6140 pts/0 Ss Apr04 0:00 | \_ zsh
parma 24021 0.0 0.0 41988 4336 pts/0 R+ 11:45 0:00 | | \_ ps -faux
parma 9375 0.0 0.0 43480 5956 pts/1 Ss Apr04 0:00 | \_ zsh
parma 10915 0.0 0.0 13716 3116 pts/1 S+ Apr04 0:00 | \_ /bin/sh /usr/bin/android-studio
parma 10967 0.2 9.4 5183808 763400 pts/1 Sl+ Apr04 2:40 | \_ /home/android-studio/bin/../jre/bin/java -Xbootclasspath/a:/home/android-studio/bin/../lib/boot.jar -classpath
parma 10994 0.0 0.0 5180 2204 pts/1 S+ Apr04 0:00 | \_ /home/android-studio/bin/fsnotifier64
parma 23842 0.0 0.0 167700 3768 ? Ssl 11:42 0:00 \_ adb -L tcp:5037 fork-server server --reply-fd 4
...
看来android-studio确实启动了服务器,但出了点问题。当然,如果我再次尝试运行它,那么我就会熟悉并且#b; adb启动服务器失败... ADB服务器没有确认"
我完全不同意进一步诊断。我希望有人可以向我提供解决方案的一些建议。
我没有使用genymotion(因为我已经看到它在解决方案中出现了很多) - 一切都完全是股票。
据我所知,我似乎只安装了一个SDK。
当我碰巧运行一个命令时,我注意到了另外一点奇怪的行为,我认为我认为我会提及。
我在5037杀死了任何进程后:
$ adb devices
List of devices attached
* daemon not running. starting it now at tcp:5037 *
* daemon started successfully *
** daemon still not running
error: cannot connect to daemon at tcp:5037: Connection refused
我不确定这意味着什么,但似乎很有趣。
由于