У меня проблема с приведенным ниже кодом, он скопирует файл на внутренний SD-диск. Это работает, проблема в том, что он будет работать только при втором запуске приложения. Мне нужно скопировать при первом запуске. Я понятия не имею, что делаю не так, может кто-нибудь поможет.
private void CopyPak()
{
try {
InputStream in = getResources().openRawResource(R.raw.bor);
File outFolder = new File(Environment.getExternalStorageDirectory() + "/OpenBOR/Paks");
File outFile = new File(outFolder, "bor.pak");
if (!outFolder.exists()){
outFolder.mkdir();
}
FileOutputStream out = new FileOutputStream(outFile);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch (IOException e) {
Log.e("tag", "Failed to copy asset file: ", e);
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1) {
out.write(buffer, 0, read);
}
}
Вот необходимый импорт.
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
также как это связано с тегами sdk и android-ndk?
В моем проекте используются как sdk, так и ndk, ядро написано на C!
хорошо, но android-sdk! = sdk, а в вашем вопросе нет ничего о ndk.




Обнаружил ошибку. Мне пришлось заменить mkdir на mkdirs, так как я создавал более одной папки.
какие-либо ошибки в logcat при первом запуске?