Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-Eclipse:跟踪文件_Android_Eclipse_Debugging_Sd Card_Trace - Fatal编程技术网

Android-Eclipse:跟踪文件

Android-Eclipse:跟踪文件,android,eclipse,debugging,sd-card,trace,Android,Eclipse,Debugging,Sd Card,Trace,我有两个问题,但第一件事是: 戴尔Inspiron M5030:AMD Athlon II P360 Windows 7 Ultimate 32位SP 1 Android ADT 21.0.1-543035 org.eclipse.platform.ide 3.8.0-I20120608-1200 模拟器: 4.0英寸宽VGA(480x800:hdpi) 安卓4.2(API 17) armeabi-v7a RAM:512,VM堆:16 内部存储:600MB SD卡大小128MB,使用主机GPU

我有两个问题,但第一件事是:
戴尔Inspiron M5030:AMD Athlon II P360
Windows 7 Ultimate 32位SP 1
Android ADT 21.0.1-543035
org.eclipse.platform.ide 3.8.0-I20120608-1200
模拟器:
4.0英寸宽VGA(480x800:hdpi)
安卓4.2(API 17)
armeabi-v7a
RAM:512,VM堆:16
内部存储:600MB
SD卡大小128MB,使用主机GPU

在我的活动的onCreate中,我有以下几行:

super.onCreate(savedInstanceState);
if (BuildConfig.DEBUG) {
        Log.i(Constants.TAG_ACTSPLASH, "onCreate() Method called.");
        Debug.startMethodTracing("actsplash");
}
super.onDestroy();
    if (BuildConfig.DEBUG) {
            Log.i(Constants.TAG_ACTSPLASH, "onDestroy()");
            Debug.stopMethodTracing();
    }
在我的活动记录中,我有以下几行:

super.onCreate(savedInstanceState);
if (BuildConfig.DEBUG) {
        Log.i(Constants.TAG_ACTSPLASH, "onCreate() Method called.");
        Debug.startMethodTracing("actsplash");
}
super.onDestroy();
    if (BuildConfig.DEBUG) {
            Log.i(Constants.TAG_ACTSPLASH, "onDestroy()");
            Debug.stopMethodTracing();
    }
问题1:在调试模式下,调用onCreate后,Logcat说:

davlikvm: Unable to open trace file '/mnt/sdcard/actsplash.trace': Permission denied
注意:在我的Epic4G(Android 4.2)上运行apk时,会创建跟踪文件

问题二:无法处理从Epic4G提取的tracefile。 (1) 运行traceview时,我收到错误信息:

The standalone version of traceview is deprecated. Please use Android Device Monitor (tools/monitor) instead. trace file './actsplash.trace' not found
(2) 运行ADM(“%SDK%/tools/monitor.bat”)并加载跟踪文件时,我得到:

Failed to read the stack trace.

这说明了一个密钥文件……这就是缺少的吗?如果您能提供任何帮助,我们将不胜感激!

第一个问题可以通过向您的应用程序添加“写入外部存储”权限来解决,这样它就可以写入/sdcard。或者,在您的私有应用程序数据存储区域中明确指定跟踪文件的文件名,并拉取fil从那里开始

第二个问题是“未找到跟踪文件”,这是第一个问题的直接结果。第三个问题似乎是第二个问题的变体


跟踪文件本身过去被分为“密钥”和“数据”文件,但很久以前它们被合并成一个.trace文件。

问题似乎出在4.2模拟器上;4.1模拟器处理跟踪文件,并且(与4.2模拟器不同)允许我拉取文件并将其加载到ADM(Android调试监视器)中.

对于问题2: Traceview无法解析相对路径。我必须指定tracefile的完整路径(仍然只使用basename),以“C:/”开头


感谢您抽出时间回复。AndroidManifest.xml:关于使用私有应用程序数据存储区域,您是说我可以做到:“Debug.startMethodTracing(“/data/data//actsplash.trace”);“…?让我重复一下,当我运行程序时,跟踪文件确实会出现在我的手机上,但traceview和ADM都不会处理它。有没有办法从我的手机中包含跟踪文件?权限看起来不错--这应该消除了“权限被拒绝”。对于应用程序数据区域,请使用
Context.getFilesDir()
而不是硬编码的路径,但是你的想法是正确的。如果你用文本编辑器查看跟踪文件,你会看到它从
*版本开始,然后是一些配置信息,然后是
*方法之后的方法列表,然后在
*结束后你会找到二进制数据。有时当事情失败时,你会得到零-length文件,并不是所有告诉你的都是好的,所以请查看文件内容。