|
|
@@ -164,11 +164,15 @@ class AboutFragment : PreferenceFragmentCompat() {
|
|
|
}
|
|
|
|
|
|
private fun copyLogs(doc: FileDoc) {
|
|
|
- val logFiles = File(appCtx.externalCacheDir, "logs")
|
|
|
- val crashFiles = File(appCtx.externalCacheDir, "crash")
|
|
|
+ val cacheDir = appCtx.externalCacheDir
|
|
|
+ val logFiles = File(cacheDir, "logs")
|
|
|
+ val crashFiles = File(cacheDir, "crash")
|
|
|
+ val logcatFile = File(cacheDir, "logcat.txt")
|
|
|
|
|
|
- val zipFile = File(appCtx.externalCacheDir, "logs.zip")
|
|
|
- ZipUtils.zipFiles(arrayListOf(logFiles, crashFiles), zipFile)
|
|
|
+ dumpLogcat(logcatFile)
|
|
|
+
|
|
|
+ val zipFile = File(cacheDir, "logs.zip")
|
|
|
+ ZipUtils.zipFiles(arrayListOf(logFiles, crashFiles, logcatFile), zipFile)
|
|
|
|
|
|
doc.find("logs.zip")?.delete()
|
|
|
|
|
|
@@ -195,4 +199,15 @@ class AboutFragment : PreferenceFragmentCompat() {
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
+ private fun dumpLogcat(file: File) {
|
|
|
+ try {
|
|
|
+ val process = Runtime.getRuntime().exec("logcat -d")
|
|
|
+ file.outputStream().use {
|
|
|
+ process.inputStream.copyTo(it)
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+ AppLog.put("保存Logcat失败\n$e", e)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|