これまでのところ、logcat を取得する方法を見つけており、その方法で解決しています...今のところ
メイン アクティビティ onCreate で、このメソッドを呼び出します。
public static void saveLogcatToFile(Context context) {
File outputFile = new File(context.getFilesDir(), "logcat.txt");
try {
@SuppressWarnings("unused")
Process process = Runtime.getRuntime().exec("logcat -df " + outputFile.getAbsolutePath());
} catch (IOException e) {...
別のアクティビティの onCreate で、TextView に logcat を使用して入力します。
public static String readLogcatFromFile(Context context) {
File logFile = new File(context.getFilesDir(), "logcat.txt");
if (logFile.exists() == false) { ...
String logContents = context.getString(R.string.EMPTY_STRING);
FileInputStream fileInStream = null;
try {
fileInStream = new FileInputStream(logFile);
logContents = convertStreamToString(fileInStream);
} catch (Exception e) { ...
} finally { ...
fileInStream.close();
}
return logContents;
}
private static String convertStreamToString(InputStream is) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
return sb.toString();
}
ログは、アンインストールするまで実行ごとに追加され続けます (これによりログ ファイルが削除されます)。以前のコミットに戻り、ログを見て何が起こったのかを確認できるため、何かを壊して起動時にアプリが停止する場合に特に便利です。