我想从我的应用程序的数据中获取将安装在系统中的本机lib路径,我试过这段代码:
String libPath = "/data/data/" + packageName + "/lib/" + libName+".so";
System.load(libPath);
但它给出了这个错误:
java.lang.UnsatisfiedLinkError:dlopen failed:library /data/data/xxxx/lib/lib.so未找到
我试图用
来硬编码String libraryPath = context.getFilesDir().getParentFile().getPath() + "/lib/"+libname+".so";
System.load(libraryPath);
但如果我使用此代码,则显示相同的错误:
String libPath = context.getApplicationInfo().nativeLibraryDir +libname+".so";
System.load(libPath);
该应用程序将尝试从系统/应用程序获取本机lib并显示相同的错误,任何人都可以帮助强制从数据中获取本机库吗?也许是这样的
context.getApplicationInfo()。nativeLibraryDir
但强制数据,而不是系统,因为当我尝试在日志中显示libpath时(当我尝试安装数据时),它会显示
/data/app/apppackage-1/lib/arm/libname.so
包名后有一个数字有时为-1,有时为-2。