打开android studio配置文件时发生OOM错误

2024-03-26

安卓版本: 8.0.0

当我调用file.list时,如果我打开android studio profiler来监控内存,很容易出现OOM错误,如下:

java.lang.OutOfMemoryError: EnsureLocalCapacity
   at java.io.UnixFileSystem.list0(Native Method)
   at java.io.UnixFileSystem.list(UnixFileSystem.java:303)
   at java.io.File.list(File.java:1122)

我尝试从源码中查找问题,List最终调用了list0,

file.list -> UnixFileSystem.list() -> UnixFileSystem_list0 :

Java_java_io_UnixFileSystem_list0(JNIEnv *env, jobject this,
                              jobject file)
{
DIR *dir = NULL;
struct dirent64 *ptr;
struct dirent64 *result;
int len, maxlen;
jobjectArray rv, old;
jclass str_class;

str_class = JNU_ClassString(env);
CHECK_NULL_RETURN(str_class, NULL);


WITH_FIELD_PLATFORM_STRING(env, file, ids.path, path) {
    dir = opendir(path);
} END_PLATFORM_STRING(env, path);
if (dir == NULL) return NULL;

ptr = malloc(sizeof(struct dirent64) + (PATH_MAX + 1));
if (ptr == NULL) {
    JNU_ThrowOutOfMemoryError(env, "heap allocation failed");
    closedir(dir);
    return NULL;
}
// ...
}

而且,令人困惑的是,这里返回的字符串是“堆分配失败" ,not “确保本地能力”,所以我不知道在哪里”确保本地能力" from

这是我的代码:

private static final String LINUX_CURRENT_FD_NUM = "/proc/" + Process.myPid() + "/fd";
private final File mFdFile = new File(LINUX_CURRENT_FD_NUM);

private void getFdInfo(){
  final String[] fdFileList = mFdFile.list();
}


mContext.registerActivityLifecycleCallbacks(new 
Application.ActivityLifecycleCallbacks() {

        // ...

        @Override
        public void onActivityStopped(Activity activity) {
            getFdInfo();
        }

        // ...
    });

目前发现是在启用profiler监控的前提下发生的。目前尚不清楚是否会出现其他情况。

几个问题:

  1. 如何解决这个问题呢?
  2. 这个问题与分析器有关吗?打开profiler内存监控会消耗内存吗?它要多少钱?
  3. 哪里可以看到profiler内存监控相关源码

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打开android studio配置文件时发生OOM错误 的相关文章

  • C# 与 JAVA 接口实例

    我不知道该如何回答我的问题 它是关于Android可以实例化接口的 我正在尝试用 C 来做 现在我非常确定 Java 和 C 的规则是不能创建抽象和接口的实例 但我很想知道Android是如何做到这一点的 在 Android 中你可以这样做
  • 如何更改Appcompat主题中的TimePicker线条颜色?

    如何更改 Appcompat 主题中所选数字之间的 TimePicker 线条颜色 线条是蓝色的 但我需要橙色线条 我将 TimePickerDialog 与 ContextThemeWrapper 一起使用 TimePickerDialo
  • 获取 NullPointerException:尝试从字段“int android.view.View.mViewFlags”读取 - Android 动画

    我已经实现了一个动画 其中我在回收器视图中有图像视图 单击该项目时我想在回收器视图之外的图像视图上做一些动画 这样 我创建了一个新的图像视图 将其添加到主容器中 做了动画 最后我将它从主容器中取出 以下是回收器视图的点击项的代码 Code
  • 尽管已被销毁,但多次打开子活动仍会导致 InstanceCountViolation

    我正在开发一个具有较低级别活动的项目 称为RecordView显示记录详细信息 例如图像 拍摄日期和时间以及纬度 经度信息 我不是尝试操纵相机进行地理标记并访问 exif 数据 而是尝试实现一个位置侦听器来获取首次拍摄图像的位置 按下按钮时
  • Android 错误 - close() 从未在数据库上显式调用

    我应该在代码的哪里调用 close LogCat 返回此错误 close 从未在数据库上显式调用 android database sqlite DatabaseObjectNotClosedException 应用程序未关闭此处打开的游标
  • 使用 Android NDK r5b 链接静态库时出现问题 [重复]

    这个问题在这里已经有答案了 最近升级到 NDK r5b 构建失败 并出现对静态库中函数的 未定义引用 这是错误 home brian workspace VoiceEngineDemo obj local armeabi v7a objs
  • Mediaplayer 播放几次后停止播放

    我有一个按钮 按下它会播放一个随机声音剪辑 然后播放另一个声音剪辑 然后通过一个媒体播放器播放另一个声音剪辑 但是多次按下该按钮 15 20 次 后 所有音频都会停止 我在播放最后一个音频剪辑后释放媒体播放器 所以我不认为这是原因 有什么指
  • 如何在android中使用retrofit访问404错误?

    我正在使用改造 2 访问 REST API 以使用原始正文插入 JSON 数据 我从服务器获得成功响应 但在响应时收到 404 错误 我想访问404错误请帮我解决这个问题 ApiUtil getServiceClass sendFinalC
  • 有没有办法获取 Android 扩展文件中特定文件的 Url?

    我正在构建一个 PhoneGap 应用程序 其中包含大型音频和视频文件 在 Android 中 媒体文件应位于扩展文件中 以使应用程序大小保持在 Google Play 50 MB 限制以下 我目前正在考虑两种播放视频文件的方法 将所需的视
  • 如何从android中的webview获取选定的文本?

    我需要从网络视图中获取选定的文本 为此 我这样说 webView loadUrl javascript Android getHtml window getSelection toString 在我的触摸事件中 触摸事件效果很好 Andro
  • Android:等待 firebase valueEventListener

    我正在尝试使用信号量来等待我的 firebase valueEventListener 我有一个用户信息活动 其中包含用户必须填写的 6 个不同字段 当用户保存他 她的信息时 我想进行 全有或全无 类型的检查 某些用户信息不能重复 例如用户
  • 如何以编程方式启用小米应用程序的自动启动

    我想知道小米是否可以提供任何应用程序的后台服务 我的应用程序中有需要始终在后台运行的服务 在除小米之外的所有设备中都工作正常 如何以编程方式完成 也适用于小米 oppo vivo 和 oneplus 手机 try Intent intent
  • 从 JSON 数组创建标记 php mySQL Google Maps v2 android

    我正在尝试从 mySQL 数据库在 Google Maps v2 上创建标记 但它不起作用 地图确实出现了 但没有标记 谁能告诉我出了什么问题以及我需要改变什么 我也尝试过让 getDouble 为 getDouble 0 和 getDou
  • Android 生命周期哪个事件在生命周期中只触发一次?

    我读过一些博客并访问了一些网站 我想知道哪个事件在生命周期中只触发了一次 阅读博客后我意识到onCreate 方法在生命周期内仅触发一次 我不知道我是对还是错 现在我的问题是 我想触发任何仅在我更改横向或纵向方向时触发一次的事件 而不是在启
  • webView.loadUrl 显示空白屏幕

    我必须加载这些通过使用下面的代码 但最终显示空白屏幕作为输出 您可以检查url代码之间的链接位于last line WebPagerLoader java public class WebPageLoader extends Activit
  • Android wifi的信号强度[重复]

    这个问题在这里已经有答案了 可能的重复 Android 如何监控WiFi信号强度 https stackoverflow com questions 1206891 android how to monitor wifi signal st
  • 找不到元素“android.support.constraint.ConstraintLayout”的声明

    我创建了一个名为的 xml 文件activity main sw50dp 但是当我尝试验证它时 它给了我错误 错误 4 42 cvc elt 1 a 找不到元素 android support constraint ConstraintLa
  • 如何在按下硬件主页按钮时关闭所有活动?

    我有一个应用程序 其中有 5 个活动 一个菜单活动和另外 4 个子活动附加到菜单屏幕 所以我可以选择任何活动 然后返回菜单 假设我像这样四处走动 菜单 gt 活动 1 gt 菜单 gt 活动 3 gt 活动 2 gt 菜单 现在我按 主页
  • Android onclicklistener 在第一次点击时不起作用

    我有一个带有默认文本的 EditText 现在 当用户单击该 EditText 时 默认文本应该更改为某些内容 我所拥有的是 我单击 EditText 光标出现在默认文本之后 没有任何反应 当我再次单击时 onClickListener 就
  • 如何获取在代码中 attrs.xml 中创建的枚举

    我创建了一个自定义视图 找到它here https bitbucket org informatic0re awesome font iconview 具有枚举类型的可声明样式属性 在 xml 中 我现在可以为我的自定义属性选择枚举条目之一

随机推荐

  • 单击链接时使用 jQuery/Javascript 更改下拉选项

    假设我有以下链接和下拉菜单 a href contact Send a mail to mother a a href contact Send a mail to father a a href contact Send a mail t
  • 在 Windows 上非侵入式解锁文件

    有没有办法使用 Python 脚本在 Windows 上解锁文件 该文件被另一个进程独占锁定 我需要一个不终止或中断锁定过程的解决方案 我已经看过了门户锁 http code activestate com recipes 65203 一种
  • 在 Eclipse 中重新启动应用程序

    我正在使用 Eclipse Juno 开发一个独立服务器 不是战争 我将它作为 Java 应用程序从 Eclipse 运行 在进行一些代码更改后 我想停止当前正在运行的服务器并再次启动它 我每天这样做几十次 我目前的做法如下 转到 调试 选
  • 如何创建具有自定义外设和内存映射的 QEMU ARM 机器?

    我正在为 Cortex M3 cpu 编写代码 并且正在使用以下命令执行单元测试qemu arm二进制 现在一切都很好 但我想知道我是否能够使用测试整个系统qemu system arm 我的意思是 我想为 qemu 编写自定义 机器 我将
  • 使用RTL布局时如何通过命中测试获取树视图项?

    描述 在从右到左阅读模式 RTL 下有树视图 如何在仅知道单击坐标的情况下获取被单击的节点 这是一个插入类 它使树视图使用 RTL 显示 并包含一个单击处理程序 您可以在其中看到问题 unit Unit1 interface uses Wi
  • 连接充电器时 Android 上的自动开机

    我正在开发一个 Android 应用程序 需要不断地保持该应用程序始终运行 在手机始终连接到电源插座的情况下 如果手机电池耗尽 是否有可能在无需用户干预的情况下自动启动应用程序 即自动打开手机电源 无需按任何电源按钮 并在连接充电器后启动
  • ValidateRequest 错误还是 SQL Server Bug?

    我正在读这个article http software security sans org blog 2011 07 22 bypassing validaterequest in asp net 它说 该字符用值 uff1c 表示 如果将
  • MSGBOX 在 WSH/VBS 中的位置

    这是我的下一个问题 我希望有人可以帮助我 是否可以在 wsh vbs 中放置 msgbox 替代文本 http www 4freeimagehost com uploads a9b04cde0527 jpg http www 4freeim
  • VBA 使用架构文件提取数据

    我下面有这个代码 Option Explicit Sub MadMule2 Dim IE As InternetExplorer Dim el Dim els Dim colDocLinks As New Collection Dim Ti
  • FastAPI 中的单元测试

    我有一个使用 FastAPI 开发的后端应用程序 使用 SQLModel SQLAlchemy 和 Pydantic 并连接到 Postgres 数据库 我有集成测试来测试我的端点是否可以与暂存 PG DB 正常工作 但现在我必须编写单元测
  • 使用波形符 ~ 扩展对 HOME 目录进行测试时得到负面结果

    我收到一个奇怪的错误 似乎无法弄清楚为什么 特别是因为它在一个地方有效 但在另一种情况下无效 我有他的代码来检查这些目录是否存在 并且带有 的 HOME 目录在此代码片段中失败 if d valueToTest then echo Fail
  • 运行自动发现的 python 单元测试的子集

    简短的问题在 Python 的单元测试模块中使用自动发现方法时 是否可以在运行时选择要运行的单元测试 背景我正在使用 unittest 模块在外部系统上运行系统测试 请参阅下面的示例 sudo testcase unittest 模块允许我
  • 使用 500GB 内存时,Pandas pd.melt 在取消旋转 3.5 GB csv 时抛出内存错误

    使用 500GB 内存时 Pandas pd melt 在取消旋转 3 5 GB csv 时抛出内存错误 是否有任何解决方案 功能可用于 unpivot 巨大的 CSV 文件 当前的 csv 有超过 5000 列 我在同样的问题上苦苦挣扎
  • 错误的 UDP 校验和没有效果:为什么?

    我正在尝试测试 UDP 程序 如果它接收到 UDP 校验和错误的数据 会发生什么情况 奇怪的是 它似乎没有任何效果 并且有效负载被成功接收 至少在 OS X 上是通过环回接口成功接收的 下面是一个示例 其中使用以下方式发送数据SOCK RA
  • Elasticsearch 中的 _search 查询如何工作?

    问题更在于 Elasticsearch 节点如何交互以给出特定的搜索结果以及搜索请求的流程是什么 我参考了以下链接来理解 但它们对于我想要理解的内容不是很清楚 https www elastic co guide en elasticsea
  • 使用指针的数组长度[重复]

    这个问题在这里已经有答案了 数组长度可以使用以下方式计算 arr 1 arr然后简化为 arr 1 arr这进一步简化为1 arr arr 但是 当在与完成内存分配的函数不同的函数中计算长度时 会计算出错误的结果 例如 include
  • 为什么 Typescript 中需要 infer 关键字?

    为什么 Typescript 开发人员创建了infer关键词 根据文件 https www typescriptlang org docs handbook release notes typescript 2 8 html 这是如何使用它
  • ASP.NET MVC - 从 MemoryStream 下载 Excel 文件(损坏的文件)

    我正在尝试使用浏览器中的内置下载来下载 Excel 文件 基本上 在我的控制器中创建 Excel 文件后 下载工作正常 但是当我尝试在 Excel 中打开此文件时 我被告知该文件已损坏 Excel 无法打开文件 Report xlsx 因为
  • 释放从新放置分配的内存

    考虑下面的代码 include iostream include conio h using namespace std class sample private int i public sample int ii 0 i ii cout
  • 打开android studio配置文件时发生OOM错误

    安卓版本 8 0 0 当我调用file list时 如果我打开android studio profiler来监控内存 很容易出现OOM错误 如下 java lang OutOfMemoryError EnsureLocalCapacity