2014-09-13 92 views
1

所以,我有這個引用一些庫的可執行二進制文件。當我嘗試使用的Runtime.exec()運行它,它給我的錯誤流說法錯誤:如何在運行二進制文件時加載android庫?

link_image[1891]: 7176 could not load needed library 'XXX.so' for 'YYY' (load_library[1093]: Library 'XXX.so' not found)CANNOT LINK EXECUTABLE 

我有XXX.so庫,但我不知道我應該把它相對於二進制YYY。我希望這爲無根設備工作。

順便說一句,我並不是很善於構建一般的東西,所以如果您認爲我在構建二進制文件時遇到了問題,請隨時指出。

回答

2

你有兩個選擇

  • 構建這個二進制用-static標誌,我想這是可以使用的dlopen來動態地加載該庫的最佳方法
  • ,如
void *g_handle = NULL; 
g_handle = dlopen("/system/lib/libskia.so", RTLD_LAZY); 
_skFT_Init_FreeType = dlsym(g_handle, "FT_Init_FreeType"); 

/**do something */ 

dlclose(g_handle); 
相關問題