2014-11-21 72 views
1

我使用NetBeans開發基於HTML5 cordova的android應用程序。 Netbeans和android SDK安裝在Linux Workstation - Ubuntu 14.04(x64)上。爲此,我喜歡運行應用程序洞察現有(並運行)的Android模擬器(AVD)。 的AVD工作正常,也可達到使用telnet:NetBeans無法連接到Android模擬器AVD

$ telnet localhost 5554 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 
Android Console: type 'help' for a list of commands 
OK 

但是:如果我試圖執行/運行NetBeans中的應用,NB返回2個對話框:

信息:Connecting to android device...

錯誤:Please run Android Emulator

我上運行的開箱窗口相同的設置。但它不適用於Ubuntu。

所以我的問題是:如何調試這個問題,可能是什麼原因,爲什麼NetBenas沒有找到模擬器?

是否有NetBeans設置?

//編輯:與@ladar的幫助下,我找到了,那一個庫丟失:由adb需要

libstdc++.so.6: cannot open shared object file

這個庫,這是NetBeans的startet。 但是:安裝libx32stdc++6libx64stdc++6後,錯誤依然存在。 adb無法找到該庫:

$ ldd /opt/android-sdk-linux/platform-tools/adb 
    linux-gate.so.1 => (0xf778d000) 
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7632000) 
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf762d000) 
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7610000) 
    libstdc++.so.6 => not found 
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf75ca000) 
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf75ad000) 
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf73fd000) 
    /lib/ld-linux.so.2 (0xf778e000) 

32位的文件被放置在/usr/libx32/。所以我添加了一個鏈接到/lib/i386-linux-gnu/。 運行strace recognizances圖書館在其新possition,但在一個錯誤仍然resuolts:

$ strace /opt/android-sdk-linux/platform-tools/adb 
execve("/opt/android-sdk-linux/platform-tools/adb", ["/opt/android-sdk-linux/platform-"...], [/* 64 vars */]) = 0 
[ Process PID=15558 runs in 32 bit mode. ] 
brk(0)         = 0xfffffffff7913000 
[...] 
open("/lib/i386-linux-gnu/cmov/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) 
stat64("/lib/i386-linux-gnu/cmov", 0xffa155b0) = -1 ENOENT (No such file or directory) 
open("/lib/i386-linux-gnu/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3 
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\243\4\0004\0\0\0"..., 512) = 512 
close(3)        = 0 
stat64("/lib/i386-linux-gnu", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 
open("/usr/lib/i386-linux-gnu/tls/i686/sse2/cmov/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) 
stat64("/usr/lib/i386-linux-gnu/tls/i686/sse2/cmov", 0xffa155b0) = -1 ENOENT (No such file or directory) 
[...] 
writev(2, [{"/opt/android-sdk-linux/platform-"..., 41}, {": ", 2}, {"error while loading shared libra"..., 36}, {": ", 2}, {"libstdc++.so.6", 14}, {": ", 2}, {"cannot open shared object file", 30}, {": ", 2}, {"No such file or directory", 25}, {"\n", 1}], 10/opt/android-sdk-linux/platform-tools/adb: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory 
) = 155 
exit_group(127)       = ? 
+++ exited with 127 +++ 

...我不知道爲什麼....

+0

Android模擬器運行時,你試圖運行項目,對不對? NetBeans不會自行啓動它。你也許想看看IDE日誌(http://wiki.netbeans.org/FaqLogMessagesFile),也許會有一些東西。如果在仿真器運行的同時將Android設備連接到PC(通過USB調試),則可能還存在問題 – ladar 2014-11-21 10:05:26

+0

@ladar是的,在嘗試運行項目之前,android模擬器正在運行(長時間)。並且:在USB上沒有連接Android設備。我將看看IDE日誌。謝謝。 – 2014-11-21 10:26:58

+0

@ladar指向Wiki/logFile位置的鏈接是一個很好的建議。謝謝。原因可能是adb'libstdC++。so.6:無法打開共享對象文件'的缺失庫。安裝'libx32stdC++ 6'和'libx64stdC++ 6'並沒有解決這個問題。:-/但現在我有辦法調查這個問題。 – 2014-11-21 11:09:28

回答

1

我喜歡回答我自己的問題這種情況下,有人有同樣的問題: 安裝幾個軟件包的32位版本並沒有解決問題。

關鍵是要安裝...-dev軟件包。下面的代碼行解決了這個問題:

sudo apt-get install lib32stdc++6 lib32z1 lib32z1-dev