Как найти ошибку, когда приложение остановилось во время выполнения? - PullRequest
0 голосов
/ 09 мая 2018

У меня есть приложение для Android, в котором есть функция экспорта базы данных SQLite в файл во внешнем хранилище. На моем телефоне (Redmi 4X) он работает нормально, но на других телефонах (например, Samsung SM-J105b) происходит сбой при выполнении резервного копирования.

Вот мой код для резервного копирования:

private void backupDB() throws IOException {

    String backupDirectory = Environment.getExternalStorageDirectory() + "/FDRMobile/Backups/";
    File backupDir = new File( backupDirectory, "");
    if (!backupDir.exists()) {
        backupDir.mkdirs();
    }
    final String inFileName = "/data/data/com.scbpfsdgis.fdrmobile/databases/FEMobile.db";

    File dbFile = new File(inFileName);
    FileInputStream fis = new FileInputStream(dbFile);
    Date date = new Date();
    DateFormat df = new SimpleDateFormat("YYYY-MM-dd_HHMMSS", Locale.getDefault());

    String bakFile = "BAK_" + df.format(date) + ".db";
    this.backupFileName = bakFile;
    backupDirectory += bakFile;

    // Open the empty db as the output stream
    OutputStream output = new FileOutputStream(backupDirectory);

    // Transfer bytes from the inputfile to the outputfile
    byte[] buffer = new byte[1024];
    int length;
    while ((length = fis.read(buffer))>0){
        output.write(buffer, 0, length);
    }

    // Close the streams
    output.flush();
    output.close();
    fis.close();
}

Я не знаю, как написать текстовый файл logcat.

1 Ответ

0 голосов
/ 09 мая 2018

Приложение Android хранит журналы запущенного приложения в файле. Вы можете получить журнал, выполнив следующие действия:

  1. Установите Android Debug Bridge, используя http://developer.android.com/tools/help/adb.html
  2. Инструкции по установке Android Debug Bridge находятся здесь: http://www.howtogeek.com/125769/how-to-install-and-use-abd-the-android- debug-bridge-utility
  3. Запустите следующие команды: «Adb logcat -c» (Это очищает журналы.)
  4. Воспроизведите проблему.
  5. Затем выполните следующую команду, чтобы записать журналы в файл: «Adb logcat -d> Name_of_Log_File.txt"
...