2014-09-13 96 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); 
相关问题