Можно ли разрабатывать и отлаживать приложения для Android на Chromebook?

Я использую гренки для создания рабочего стола Linux на моем Chromebook. Здесь я установил Android Studio и начал работать над простым приложением для Android. Я могу создать apk, переместить его в папку "Downloads", а затем переключиться с linux на ChromeOS и запустить приложение. (Я использую APK Installer - работает отлично).

Я хотел бы видеть LogCat из моего приложения (ну, на самом деле я хотел бы видеть всю диагностику, которую вы получаете при работе в эмуляторе в Android Studio - но я бы согласился на LogCat).

Все, что я читал об использовании adb, предполагает, что у вас будет компьютер разработчика, на котором находится Android Studio, и целевой компьютер, на котором работает ваше приложение. Используя crouton, рабочий стол linux и ChromeOS находятся на одном компьютере, и одновременно может работать только один, поскольку они совместно используют одни и те же ресурсы и т. Д. Я попробовал несколько приложений, но ни одно из них не смогло показать logcat из моего приложения, работающего на Chromebook - они даже не признают, что он работает. Кто-нибудь получил какие-либо идеи о том, как просмотреть logcat для этой конкретной установки?

1 ответ

Решение

До сих пор я нашел способ получить 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) {...

В onCreate другого Activity заполните 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();
    }

Журналы продолжают добавляться для каждого запуска, пока вы не удалите (это удалит файл журнала). Я нахожу это особенно полезным, когда я что-то ломаю, и мое приложение просто умирает при запуске, так как я могу вернуться к предыдущей фиксации и посмотреть в журналах, чтобы увидеть, что произошло

Другие вопросы по тегам