0

我收到有关 Google Play 中某个应用的错误报告。问题是它非常模糊,由于 proguard 配置,我无法从堆栈跟踪中检索大量信息:

应用程序崩溃的方法是:

private File getExternalStorageAppRoot(Context ctx) {
    String basePath="cache";
    if (Build.VERSION.SDK_INT >= 8) {
        File extFile = ctx.getExternalFilesDir(basePath);
        if (extFile != null) {
            return extFile;
        }
    }

    String externalFilesDir = Environment.getExternalStorageDirectory().getAbsolutePath()
            + File.separator + "Android" + File.separator + "data" + File.separator
            + ctx.getApplicationInfo().packageName + File.separator + "files";

    return new File(externalFilesDir, basePath);
}

异常是 NullPointerException 并且 ctx 始终不为空。关于它在哪里崩溃的任何想法?

在我的测试中,此方法不会崩溃

谢谢

4

1 回答 1

0

根据您的方法,我将检查以下结果:

 ctx.getApplicationInfo() // and .packageName

 Environment.getExternalStorageDirectory() // and .getAbsolutePath()

从我的角度来看,这两点可能会引发 NPE。也许你可以打印一些注销。

于 2012-07-22T08:37:10.563 回答