android - Google Developer 控制台堆栈跟踪了解

标签 android stack-trace

我在 google store 上有一个应用程序,我在堆栈跟踪中收到崩溃。 问题是我无法获取崩溃行或文件,因为名称与 java 文件中的不同

java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:791)
at android.graphics.Bitmap.createBitmap(Bitmap.java:768)
at android.graphics.Bitmap.createBitmap(Bitmap.java:701)
at com.tech.myapp.dt.a(Unknown Source)
at com.tech.myapp.dt.doInBackground(Unknown Source)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)

这里的问题是文件名是

at com.tech.myapp.dt.a(Unknown Source)
at com.tech.myapp.dt.doInBackground(Unknown Source)

如何检测行和哪个文件?

最佳答案

看起来您正在使用 Proguard 混淆您的代码,因此要解码您的堆栈跟踪,您需要您的 mapping.txt 文件并通过查看文件中的映射手动解码它或使用 retrace 工具。查看这些 instructions了解如何使用 retrace

基本上,在 Windows 平台上你需要做的:

retrace.bat [-verbose] mapping.txt [<stacktrace_file>]

或在 Unix 风格的平台上:

retrace.sh [-verbose] mapping.txt [<stacktrace_file>]

但是,当您查看 OutOfMemoryError 时,问题的真正原因可能在其他地方(例如,如果您在其他地方泄漏内存,则可能是您的 Bitmap创建并不是真正的问题),只是您在创建 Bitmap 时看到了问题,因此您可能需要更全面地查看内存使用情况和/或查找内存泄漏。

关于android - Google Developer 控制台堆栈跟踪了解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641978/

相关文章:

android - 在 firebase jobdispatcher 中停止 JobService 内的预定作业

安卓日期 : finding future date

android - 使 "up"按钮的行为类似于 Android 上的 "back"按钮

asp.net - 堆栈跟踪中的数字意味着什么

android - fragment onCreateOptionsMenu 未在方向更改时被调用

android - 调用 Activity.onSaveInstanceState() 后的 commit() fragment 事务

c++ - boost::stacktrace 打印地址

php - Yii 即使在 Debug模式下也显示标准错误

c - 如何在不崩溃 c 中的进程的情况下生成核心转储?

c - 如何将函数地址映射到 *.so 文件中的函数