【问题标题】:Android app storage path returning null only for .jar classes仅为 .jar 类返回 null 的 Android 应用程序存储路径
【发布时间】:2013-08-15 16:35:39
【问题描述】:

这就是问题所在。我有两个单独的类包含在我的应用程序中。一个是广告 SDK,另一个是 RoboSpice。我都没有源代码,它们只是我包含的 .jar 文件。当这些应用程序尝试获取外部存储的路径以写入临时文件时,它们将返回 null。我知道因为他们转储到控制台的日志。但是,在我自己的源代码中,如果我使用相同的例程,例如 getexternalstorage(),它会返回路径并让我很好地保存文件。鉴于我没有这些类的源代码,我无法单步调试,我只能依靠它们写入控制台的内容。

现在完整的故事。这个项目是我从另一位开发人员那里继承的。他们在项目中使用了 Maven,并且一些依赖项依赖于非公共 Maven 源。所以我继续将其转换为标准的 Eclipse 项目。旧的编译源在 /data/data//cache 的测试设备上存储了 robospice 临时文件,所以我知道旧的源在过去可以很好地写入设备。关于为什么编译的源代码无法在设备上获得正确的存储位置的任何想法?

【问题讨论】:

  • 所以.. 在你的项目中,你从来没有让这个工作?
  • @Math 如果我在非 Maven 项目中使用我的源代码写入临时存储,它可以工作。如果外部类尝试写入非 Maven 项目中的临时存储,则不会。然而,在旧的 maven 项目中,robospice 确实成功地创建和写入了缓存文件。
  • 对于那些好奇的人来说,这个问题结束了,因为我将 Activity 上下文与 App 上下文发送到我的一个班级。

标签: android local-storage robospice


【解决方案1】:

您可以在 eclipse 中包含使用 this technique 的库的源代码。

RS 是开源的,它的源代码可以在it's github repo 上轻松找到。

RS 1.4.6 支持为缓存文件设置自定义路径,您必须为此定义自己的 RS 服务。入门指南详细说明了实现这一目标的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-27
    • 2011-03-30
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2018-10-02
    • 2014-08-04
    • 1970-01-01
    相关资源
    最近更新 更多