/mnt/sdcard/OsgiComponents/admin/Felix-cache/
这是代码:
File cacheDir = new File( Environment.getExternalStorageDirectory().getAbsolutePath() + "/OsgiComponents/admin/Felix-cache/" ); // Create the folder cacheDir.mkdirs(); // Check if it exists if ( ! cacheDir.exists() ) { Log.e ( "Debug","Cache directory cannot be created" ); }
我在android清单文件的清单标签下有WRITE_STORAGE_PERMISSION.我能够在SD卡上创建其他文件夹和文件而没有问题.
该应用程序适用于以下手机:
> Nexus S(扎根)运行姜饼(2.3)
>运行Jelly Bean的Nexus S(无根)(4.1.2)
> HTC Desire(rooted)运行Froyo(2.2)
> HTC Desire(无根)运行Froyo(2.2)
但是在运行Ice Cream Sandwich(4.0.4)的三星galaxy Nexus手机(无根)上,该目录被创建为零大小的文件,可以在Astro中看到. exists()调用返回false.
>正如您从文件夹名称中看到的,我正在使用Apache Felix.如果不存在,Felix会自动创建缓存目录.在galaxy Nexus上,它总是抱怨它无法创建缓存目录. Astro显示0字节文件而不是文件夹.这就是我决定在初始化Felix之前尝试自己创建缓存文件夹的原因.
>所以,我自己创建了缓存文件夹.该应用程序第一次正常工作,我可以在Astro中看到该文件夹正常.如果我关闭应用程序,然后删除Astro中的文件夹,然后重新启动应用程序,甚至我的代码神秘地无法创建缓存目录,Astro显示0字节文件.
>在Astro中无法删除0字节文件.但是,当我重新启动手机时,文件夹神奇地存在并且没问题.
>我使用FileInstall来观看OsgiComponents / install文件夹.当我将捆绑罐放入该文件夹时,它会在除galaxy Nexus之外的所有手机上检测并安装好(当应用程序第一次运行时). FileInstall没有关于无法查看目录的日志/错误.
>我已经在2台galaxy Nexus手机上测试了这个,同样的问题.
我怀疑这是一个权限问题,但我不确定它是什么,以及为什么创建一个0字节文件而exists()返回false.代码中没有其他地方我创建此文件.
关于可能出现什么问题的任何建议?
谢谢 :)
更新:我想我已经确定了这个问题,请看我发布的答案.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。