0

クルトンを使用して、Chromebook に Linux デスクトップを作成しています。ここでは、Android Studio をインストールし、単純な Android アプリの作成を開始しました。apk をビルドして Downloads フォルダーに移動し、Linux から ChromeOS に切り替えてアプリを実行できます。(私は APK インストーラーを使用しています - 正常に動作します)。

アプリから logcat を表示できるようにしたいです (実際には、Android Studio のエミュレーターで実行しているときに得られるすべての診断を表示したいのですが、logcat で解決します)。

adb の使用について私が読んだことは、Android Studio がある開発マシンと、アプリが実行されているターゲット マシンがあることを期待しています。クルトンを使用すると、LinuxデスクトップとChromeOSは同じマシン上にあり、同じリソースを共有するため、一度に実行できるのは1つだけです。いくつかのアプリを試しましたが、Chromebookで実行されているアプリからlogcatを表示できませんでした-彼らはそれが実行されていることさえ認識していません。この特定のセットアップの logcat を表示する方法について何かアイデアを持っている人はいますか?

4

1 に答える 1

0

これまでのところ、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();
    }

ログは、アンインストールするまで実行ごとに追加され続けます (これによりログ ファイルが削除されます)。以前のコミットに戻り、ログを見て何が起こったのかを確認できるため、何かを壊して起動時にアプリが停止する場合に特に便利です。

于 2016-12-16T03:39:14.153 に答える