我一直在我的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确实启动了服务器,但出了点问题。 当然,如果我试图再次运行它,那么我得到熟悉的“ADB启动服务器失败… ADB服务器没有确认”
我完全不同意诊断这一点。 我希望有人能给我提供一些解决scheme的指针。
我不使用genymotion(因为我已经看到它在解决scheme中出现了很多) – 所有东西都是完全有货的。
据我所见,我似乎只有一个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
我不确定这是什么意思,但似乎有趣。
谢谢