这是问题所在。我有两个单独的类包含在我的应用程序中。一个是广告 SDK,另一个是 RoboSpice。我都没有源代码,它们只是我包含的 .jar 文件。当这些应用程序尝试获取外部存储的路径以写入临时文件时,它们将返回 null。我知道因为他们转储到控制台的日志。但是,在我自己的源代码中,如果我使用相同的例程,例如 getexternalstorage(),它会返回路径并让我很好地保存文件。鉴于我没有这些类的源代码,我无法单步调试,我只能依靠它们写入控制台的内容。
现在完整的故事。这个项目是我从另一位开发人员那里继承的。他们在项目中使用了 Maven,并且一些依赖项依赖于非公共 Maven 源。所以我继续将其转换为标准的 Eclipse 项目。旧的编译源在 /data/data//cache 的测试设备上存储了 robospice 临时文件,所以我知道旧的源在过去可以正常写入设备。关于为什么编译的源代码无法在设备上获得正确的存储位置的任何想法?