问题标签 [android-debug]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 我的安卓手机突然停了
我正在开发一个 android 应用程序并在我的手机上尝试这个应用程序,我的手机有几个问题所以它不是很好......我只是将它用于开发但正在尝试我的应用程序并且应用程序启动了突然屏幕冻结,手机关闭,我无法再次打开它,所以我需要知道如果应用程序包含错误代码或者......因为我在模拟器上运行应用程序并且它工作正常因为我需要没有错误...现在我的电脑不再识别 USB...所以以前有人遇到过这个问题吗?谢谢你。
这是日志猫:
android-ndk - valgrind android不显示行号
在 Android 外壳上:
==================================================== =======================
valgrind.log--堆摘要:
==21314== 堆摘要:
==21314== 在退出时使用:6 个块中的 2,098,270 字节
==21314== 总堆使用量:6 次分配,0 次释放,分配 2,098,270 字节
==21314==
==21314== 1 个块中的 4 个字节在 6 个丢失记录 1 中肯定丢失
==21314== 在 0x482BAEC:malloc (vg_replace_malloc.c:291)
==21314== 由 0x864B: ??? (在 /data/local/Test 中)
==21314==
==21314== 1 个块中的 10 个字节肯定丢失在 6 个丢失记录 2 中
==21314== 在 0x482BAEC:malloc (vg_replace_malloc.c:291)
==21314== 由 0x863B: ??? (在 /data/local/Test 中)
==21314==
==21314== 1 个块中的 80 个字节肯定丢失在丢失记录 3 of 6 中
==21314== at 0x482C2E4: operator new[](unsigned int) (vg_replace_malloc.c:378)
==21314== 由 0x85DF: ??? (在 /data/local/Test 中)
==21314==
==21314== 1 个块中的 1,024 个字节在丢失记录 4 of 6 中仍然可以访问
==21314== 在 0x482BAEC:malloc (vg_replace_malloc.c:291)
==21314== 由 0x4852DB3:__smakebuf(在 /system/lib/libc.so 中)
==21314==
==21314== 1 个块中的 1,048,576 字节可能在丢失记录 5 of 6 中丢失
==21314== 在 0x482BAEC:malloc (vg_replace_malloc.c:291)
==21314== 由 0x86C3: ??? (在 /data/local/Test 中)
==21314==
==21314== 1 个块中的 1,048,576 字节肯定丢失在 6 个丢失记录 6 中
==21314== 在 0x482BAEC:malloc (vg_replace_malloc.c:291)
==21314== 由 0x869F: ??? (在 /data/local/Test 中)
==21314==
==21314== 泄漏摘要:
==21314== 肯定丢失:4 个块中的 1,048,670 字节
==21314== 间接丢失:0 个块中的 0 个字节
==21314== 可能丢失:1 块 1,048,576 字节
==21314== 仍然可达:1 块中的 1,024 字节
==21314== 抑制:0 个块中的 0 个字节
==21314==
==21314== 对于检测到和抑制的错误计数,重新运行:-v
==21314== 错误摘要:来自 18 个上下文的 137 个错误(抑制:0 来自 0)
Android.mk:
在 Linux 上我运行ndk-build NDK_DEBUG=1
所以这个测试是可调试的,为什么 valgrind 日志不显示行号?
android - 如何在 Android 中调试并发 AsyncTasks 的问题?
我一次运行了几个 AsyncTasks,它似乎导致了一些特殊的问题,比如渲染按钮不可用。一个 AsyncTask 负责保持会话活动,并在每个活动的 onResume() 中运行:
然后我有另一个 AsyncTask 用于简单地从服务器获取 JSON 对象并将结果加载到列表视图中:
如果我不运行 SessionKeepAliveTask 任务,那么我的搜索服务将按预期工作,但如果我这样做,我会遇到一些不可预知的错误。我更感兴趣的是知道如何开始调试这个问题,而不是一个可靠的答案,但显然如果有人在此之前遇到这个问题会很棒。我可以在 DDMS 监视器中看到当前线程,但我不确定如何使用它。
android - 如何知道 APK 支持的 adb 命令?
我在一家公司工作,我的一些工作包括与 APK 文件的一些交互。我刚刚遇到了一个由某个内部团队开发的 APK 文件,并且没有太多的文档。
我想知道是否有任何方法可以知道 APK 可用的不同命令(API 参考)?或者它是否总是来自任何给定 APK 的提供商唯一信息来源的文档?
或者甚至有更多关于错误的信息,而不是使用 adb 命令在命令提示符下运行它们?
对于这个幼稚的问题,我很抱歉,但我对 android 开发还很陌生。
android - Android 调试中的“标签作业”期间发生内部错误
单步执行我的 Android 代码时出现此错误:
在“标签作业”期间发生内部错误。org.eclipse.debug.internal.ui.views.variables.IndexedVariablePartition 不能转换为 org.eclipse.debug.core.model.IExpression
当我尝试通过单击+
左侧的小符号来扩展我正在观察的数组变量时,就会发生这种情况。它来了一次,然后单击确定后,它就不再回来了,但是我在监视窗口中看不到数组的元素。但是如果我按 F5 继续单步,在此之后,如果我再次按+
标志,错误就会再次出现。我正在观察的所有变量都是double
变量。我该如何摆脱这个?
java - USB 忙时捕获 LogCat(到 SD 卡)
我已经尝试在这里找到一个明确的答案,但没有成功,所以如果答案很明显,请原谅我。我正在开发一个使用 USB 作为 OTG 与外部设备通信的应用程序。问题是发生崩溃时,我无法通过USB调试进行调试,当然也不能使用模拟器。由于 JellyBean,不可能使用第三方应用程序来读取 LogCat - 在这种情况下,我只有 JB 设备可以测试。
在这种情况下,是否有一种快速有效的方法来获取所有日志?
我试过这个onCreate
:
而且它并没有真正写任何东西(尝试了几种路径)..
提前谢谢你,马克。
android - 如何将我的 Android 应用程序中的所有 System.out.println 输出捕获为字符串
我有一个使用各种的应用程序,System.out.println("Bla bla");
我希望所有这些调用都被捕获并作为字符串处理,所以我可以用类似的TextView
东西查看它们
但不幸的是,我不知道如何在System.out.println
不手动编辑每个方法类的情况下捕获 ALL 以将打印内容返回为String。
我怎样才能实现我的目标?
注意
我需要该应用程序在没有任何外部调试器的设备中运行时在 TextView 本身中显示 System.out.println
android - Android:如何分析原生堆转储?
我使用命令创建了一个本机堆转储文件dumpheap -n <PID> <file>
。该文件采用人类可读格式,但包含难以理解的信息。如何分析此文件并从中获取有用的信息?
提供函数地址以代替函数名称。映射在文件底部提供。是否有任何工具可以映射这些并使用函数/库名称而不是地址提供有意义的输出(加载库/函数的符号)。如果没有,那么 ddms 如何做到这一点?另外如何加载符号以显示函数名称?
有什么方法可以比较两个或多个本机堆转储?
我得到的转储堆文件看起来像这样
安卓 原生堆转储 v1.0
总内存:13863984 分配记录:3108
Z 1 SZ 8388608 NUM 1 BT 40AFCD1A 40AFBC0E 40119D30 40795210 407A9BAE 407941A0 4076C2264 407770B6C 407AA47F4
z 1 sz 1516906 num 1 bt 40afcd1a 40afbc0e 40119d30 400658fe 402563d8 5a400b10 5d6c3ed2 5d6c3efc 5d6c3f34 5d69d556 5d6a9de0 40794664 407aafa0 4076c264 40770b6c 407a47f4 407a481e 407af4a8 407aff8c 407678b0 40770b6c 407a4aba 407ac010 4076c264 40770b6c 407a47f4 4078e676 401dd98e 401de472 4005ddd2 40119ed4
z 1 sz 262144 num 1 bt 40afcd1a 40afbc0e 40119d30 400658fe 40a14416 40a144e0 40a154a4 40a1570e 40a1d8cc 40a20d42 40a1a9e4 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 401f0c90 40762e34 40792086 4076c264 40770b6c 407a4aba 407ac010 4076c264 40770b6c 407a47f4 4078e676 401dd98e 401de472 4005ddd2
z 1 sz 262144 num 1 bt 40afcd1a 40afbc0e 40119d30 400658fe 40a14416 40a144e0 40a154a4 40a1570e 40a1d8cc 40a20d42 40a1a9e4 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 401f0c90 40762e34 40792086 4076c264 40770b6c 407a4aba 407ac010 4076c264 40770b6c 407a47f4 4078e676 401dd98e
z 1 sz 65536 num 1 bt 40afcd1a 40afbc0e 40119d30 400658fe 40a14400 40a15714 40a1d8cc 40a20d42 40a1a9e4 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 401f0c90 40762e34 40792086 4076c264 40770b6c 407a4aba 407ac010 4076c264 40770b6c 407a47f4 4078e676 401dd98e 401de472 4005ddd2 40119ed4
z 1 sz 65536 num 1 bt 40afcd1a 40afbc0e 40119d30 400658fe 40a14400 40a15714 40a1d8cc 40a20d42 40a1a9e4 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 40a1aa26 401f0c90 40762e34 40792086 4076c264 40770b6c 407a4aba 407ac010 4076c264 40770b6c 407a47f4 4078e676 401dd98e 401de472 4005ddd2
这些数字说明了什么?
android - Why addr2line is not able to resolve certain address to function names?
I have backtraces obtained from executing the command dumpheap -n <PID> <file>
. I have to convert these address to function names and line numbers to make these backtraces meaningful. I used addr2line to convert these addresses to function names. This is the command i used addr2line -C -f -e <libname>.so <address>
. There are certain places where addr2line gives me $t in the place of function names but gives the filename:linenumber correctly. How should i resolve this '$t' into function name.
android - DDMS 如何获取原生堆数据?
DDMSdumheap -n <PID> <file>
是在内部使用命令来获取本机堆数据还是使用任何其他机制?请您指出发生这种情况的代码行。