Android:调用 getExternalFilesDir(null) 时出现 ANR

标签 android android-activity android-anr-dialog

最近,当我从 Activity 代码中调用 getExternalFilesDir(null) 时,我开始收到 ANR 错误。这段代码之前可以工作,但是现在,也许在更新 gradle 构建工具之后,出现了这样的问题。清理项目和重建没有帮助。有人也遇到这个问题吗?提前致谢。

代码示例。应用程序卡住并在第一行出现 ANR 对话框 Filefolder = getExternalFilesDir(null);

    // check if downloaded files take less memory than EPISODES_SIZE_WARNING_LIMIT_MB
private void checkFolderSize() {
    File folder = getExternalFilesDir(null);
    if (folder != null) {
        long length = 0;
        for (File file : folder.listFiles())
            if (file.isFile())
                length += file.length();
        double sizeMb = ((double)length) / 1024 / 1024;
        if (sizeMb > EPISODES_SIZE_WARNING_LIMIT_MB) {
            new AlertDialog.Builder(this)
                    .setTitle(R.string.dialog_warning)
                    .setMessage(getString(R.string.warning_used_memory, EPISODES_SIZE_WARNING_LIMIT_MB))
                    .setNeutralButton(R.string.dialog_ok, null)
                    .show();
        }
    }
}

最佳答案

那是设备问题。重启后就可以了。

关于Android:调用 getExternalFilesDir(null) 时出现 ANR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36769370/

相关文章:

android - 为什么 GoogleMap.animateCamera() 在 onGlobalLayout() 之后崩溃?

android - PWA 在后台播放媒体

java - 如何从 Android 中的父 Activity 调用 Fragment 方法

android - 不适用于参数 ()

java - 无法同时将两个字符串从一个 Activity 传递到另一 Activity

Android让每个 Activity 都获取位置信息?

android - Android 13 设备中面临高 ANR 率

android - 如何从 Activity 和 BroadcastReceiver 重现应用程序无响应 (ANR)

java - 我可以将 Activity 转换为 float 窗口吗?

android - 文本转语音导致大多数驱动程序和长文本出现 ANR