检索目录路径中的空指针异常

时间:2012-07-22 08:31:36

标签: java android

我收到了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始终不为null。关于它崩溃的地方的任何想法?

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

由于

1 个答案:

答案 0 :(得分:0)

根据您的方法,我会检查结果:

 ctx.getApplicationInfo() // and .packageName

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

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