首页 > 解决方案 > Chrome OS 上是否有 Android 应用程序的日志文件?

问题描述

我正在我的 Chromebook(Linux 下的 Android Studio)上开发一个 Android 应用程序。

当我请求内部存储上的文件时,该程序运行良好,但是当我尝试访问 SD 卡上的文件时,它崩溃了。我确实对应用程序清单中指定的外部存储具有读写访问权限。

由于我无法在 Chromebook 上的 Android Studio 调试器中运行该应用程序,我想知道 Chrome OS 是否有任何日志文件可能包含有关我崩溃的信息。

如果有帮助,这是我的代码:

package com.muddco.fl04;

import androidx.appcompat.app.AppCompatActivity;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.OpenableColumns;
import android.util.Log;
import android.widget.Toast;

import com.muddco.fl04.R;

public class MainActivity extends AppCompatActivity {

    static String TAG = "TEST123";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        openFile();
    }

    // Request code for selecting a PDF document.
    private static final int PICK_FILE = 2;

    private void openFile() {
        Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("*/*");

        startActivityForResult(intent, PICK_FILE);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode,
                                 Intent resultData) {
        if (requestCode == PICK_FILE
                && resultCode == Activity.RESULT_OK) {
            Uri uri = null;
            if (resultData != null) {
                uri = resultData.getData();
                dumpImageMetaData(uri);
            }
        }
        super.onActivityResult(requestCode,resultCode,resultData);
    }

    public void dumpImageMetaData(Uri uri) {

        Cursor cursor = getApplicationContext().getContentResolver()
                .query(uri, null, null, null, null, null);

        try {
            if (cursor != null && cursor.moveToFirst()) {

                // Note it's called "Display Name". This is
                // provider-specific, and might not necessarily be the file name.
                String displayName = cursor.getString(
                        cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
                Log.i(TAG, "Display Name: " + displayName);

                int sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE);
              String size = null;
                if (!cursor.isNull(sizeIndex)) {
                   size = cursor.getString(sizeIndex);
                } else {
                    size = "Unknown";
                }
                Log.i(TAG, "Size: " + size);
                Toast.makeText(this, "Display Name: " + displayName + " Size: " + size, Toast.LENGTH_LONG).show();
            }
        } finally {
            cursor.close();
        }
    }
}

标签: androidgoogle-chrome-os

解决方案


推荐阅读