android - 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();
}
}
}
解决方案
推荐阅读
- angular - 附加到 HttpParams 在一种方法中添加到 map 属性,但不是在另一种方法中
- firebase - 如何在 Firebase 动态链接中创建通配符?
- sql - 如何根据内容对客户的订单进行分类
- sqlite - SQLite 固定大小的 varchar 长度检查可能是多余的?
- tmux - 根据远程主机名更改 tmux 窗格的背景颜色
- keras - 在 LSTM 中,我如何提供输入是否会有所不同?
- ios - iOS - 方向更改时导航栏不显示大标题
- javascript - 如何在JS中检查null并基于它实现逻辑?
- django - 如何为 Django Web 应用程序的查看者分配状态?
- docker - 在进行 CI 运行测试时,我应该使用生产 docker build 吗?