2012-07-09 48 views
0

我需要爲我的Android Eclipse項目加載庫ld-uClibc-0.9.30.1.so。我試圖從我的主機與Sytem.load("/root/workspace/libs/ld-uClibc-0.9.30.1.so")加載它,但我得到的錯誤:如何使用System.load()函數加載庫?

Cannot load library /root/workspace/libs/ld-uClibc-0.9.30.1.so. Library not found. 

這是怎麼回事?爲什麼它不適用於System.load?

+0

這聽起來不像是一個Android兼容庫 – 2012-07-09 12:18:56

+0

好吧,你能告訴我如何知道一個庫是否兼容Android? – 2012-07-09 12:30:49

+0

通過生成它的工具鏈,或加載它的錯誤。不過,在這種情況下,如果圖書館建議它的名稱。 uClibc是一個小型系統的C庫,但Android有它自己的C庫,名爲Bionic,它已在您的應用程序啓動時加載。你應該用android ndk重新編譯需要這個的代碼,以便它與Bionic鏈接。 – 2012-07-09 12:41:29

回答

0

添加庫到這是項目文件夾內的libs文件夾,然後調用

System.loadLibrary("ld-uClibc-0.9.30.1"); 
+0

我不這樣工作。的System.loadLibrary( 「LD-uClibc的-0.9.30.1」);也不起作用。實際上,使用System.load()必須爲庫提供完整路徑。但沒有任何工作。 – 2012-07-09 10:29:01

+0

我的意思是loadLibrary,對不起 – Nermeen 2012-07-09 10:31:02

+0

它不適用於System.loadLibrary。什麼可能是這個問題? – 2012-07-09 11:39:15

0

剛剛意識到真正的問題是什麼。我一直以爲你正在嘗試加載uClibc C庫。但事實上,情況並非如此。您正在嘗試加載uClibc動態鏈接程序,以解決與uClibc鏈接而不是仿生鏈接的libusb版本中的依賴關係。

這僅僅是行不通的(至少在沒有淫穢兩輪牛車)

您需要重建一切對仿生聯繫,通過其產生獨立的工具鏈功能使用NDK工具鏈,成爲可能。

但是,試圖讓libusb在沒有root權限的情況下使用android或者修改設備文件權限的能力可能是徒勞無益的。

+0

好的,我如何重建與仿生物相關的一切?對不起,這個問題,但正如我已經提到,我是一個絕對的Android初學者。是否真的幾乎不可能讓libusb在無根Android設備上工作?主要問題是什麼?我在互聯網上沒有發現太多內容。因爲如果這是不可能的事情,我不想浪費太多時間。 – 2012-07-09 19:51:46

+0

問題是如果你可以訪問原始設備文件。你無法在android中的其他任何地方使用系統級別的用戶空間代理。 – 2012-07-09 23:34:45

0

我編譯了libusb.so和NDK,現在至少它可以在Android項目中加載。我認爲這個話題可以被回答。我會發布另一個關於在Android上使用libusb的問題。如果你們仍然給我一些好的提示,我會很感激,因爲它直到現在幫助我很多。

相關問題