我想在运行时加载第三方 jni 库。
我试图直接从 sdcard 加载。预计失败了。
我尝试将库从 sdcard 复制到 /data/data/app/,然后
System.load(/data/data/app/libjni.so)
它适用于 HTC HERO,但在 HTC Legend 与 Android 2.1 上失败。它在执行本机代码期间失败并写入日志无信息堆栈跟踪还有其他方法吗?这是最好的代码,适用于 1.5(HTC Hero),但不适用于 2.1(HTC Legend)。
FileInputStream fis = new FileInputStream("/sdcard/libjni.so");
File nf = new File("/data/data/app/libjni.so");
FileOutputStream fos = new FileOutputStream(nf);
byte[] buf = new byte[2048];
int n;
while ((n = fis.read(buf)) > 0)
fos.write(buf, 0, n);
fis.close();
fos.close();
System.load("/data/data/app/libjni.so");