Debug.startMethodTracing(" xyz")崩溃了应用程序

时间:2017-02-28 02:15:21

标签: android performance

尝试为我的应用程序的冷启动获取traceview转储。 我添加了WRITE_EXTERNAL_STORAGE权限并拥有 我的Application类的Debug.startMethodTracing("xyz")中的onCreate

我的应用与Permission denied

崩溃了
02-27 17:48:06.173 3395-3395/: Unable to open trace file '/storage/emulated/legacy/xyz.trace': Permission denied
02-27 17:48:06.174 3395-3395/E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                  java.lang.RuntimeException: Unable to create application (...): java.lang.RuntimeException: Unable to open trace file '/storage/emulated/legacy/xyz.trace'

编辑1:我在运行Lollipop的真实Nexus 6设备上执行此操作

解决方案:

因此,某些库可能会覆盖写入外部存储权限。我将其添加到AndroidManifest.xml并开始工作

强调工具:node ="替换"

3 个答案:

答案 0 :(得分:0)

WRITE_EXTERNAL_STORAGE被归类为"危险"权限,需要在运行时请求。在清单文件中声明它是不够的。请参阅文档here

答案 1 :(得分:0)

String[] PERMISSIONS = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};

    if (!BaseActivity.hasPermissions(getContext(), PERMISSIONS)) {
        ActivityCompat.requestPermissions(getActivity(), PERMISSIONS, 12300);
    }

您需要启用运行时权限,在onCreate中运行此代码。

答案 2 :(得分:0)

因此,某些库可能会覆盖写入外部存储权限。 我将此添加到AndroidManifest.xml并开始工作 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="replace"/>

**强调工具:node =“replace”**