我使用NDK构建了一个本机C用户空间应用程序(在NDK中使用BUILD_EXECUTABLE属性)。
我的应用程序包含使用少量共享对象的主程序(我使用BUILD_SHARED_LIBRARY创建的共享库)。
我可以正常运行应用程序(我正在使用LG-G4)但是:仅当我将* .so文件复制到手机上的/ system / lib和/ system / lib64时才有效。
有没有办法将* .so文件复制到某个自定义位置(例如/ data / my_dir),并且应用程序仍然可以在运行时链接到* .so?
答案 0 :(得分:0)
我知道现在回答已经很晚了,但无论如何,这个答案对于遇到这样的问题的其他人可能会有所帮助。您不必将* .so库从您的本机库目录复制到任何地方,只需告诉ProcessBuilder您的库所在的位置如下:
//your process builder which executes
ProcessBuilder pb = new ProcessBuilder(argvlist);
//lbpath - path (your native dir) of shared libraries which are used by executable
pb.environment().put("LD_LIBRARY_PATH", lbpath);