Я хочу загрузить стороннюю библиотеку jni во время выполнения.
Я пытался загрузить ее напрямую с SD-карты. Это, как и ожидалось, не удалось.
Я попытался скопировать библиотеку с SD-карты в /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");
/data/data/libjni.so
на рабочем устройстве. - person CommonsWare   schedule 13.05.2010