0

我正在使用 crouton 在我的 chromebook 上创建一个 linux 桌面。在这里,我安装了 Android Studio 并开始开发一个简单的 android 应用程序。我可以构建一个 apk,将其移至 Downloads 文件夹,然后从 linux 切换到 ChromeOS 并运行该应用程序。(我使用 APK 安装程序 - 工作正常)。

我希望能够从我的应用程序中查看 logcat(实际上,我希望查看在 Android Studio 的模拟器中运行时获得的所有诊断信息 - 但我会选择 logcat)。

我读过的关于使用 adb 的任何内容都希望您拥有一台 Android Studio 所在的开发机器和运行您的应用程序的目标机器。使用 crouton linux 桌面和 ChromeOS 在同一台机器上,一次只能运行一个,因为它们共享相同的资源等。我尝试了一些应用程序,但没有一个能够显示我在 chromebook 上运行的应用程序的 logcat -他们甚至不知道它正在运行。有人对如何查看此特定设置的 logcat 有任何想法吗?

4

1 回答 1

0

到目前为止,我已经找到了一种获取 logcat 的方法,并且正在为此解决……现在

在主Activity 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) {...

在另一个 Activity 的 onCreate 中,使用 logcat 填充 TextView;

    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();
    }

每次运行的日志都会不断追加,直到您卸载(这会删除日志文件)。当我破坏某些东西并且我的应用程序在启动时死机时,我发现它特别有用,因为我可以恢复到先前的提交并查看日志以查看发生了什么

于 2016-12-16T03:39:14.153 回答