gpt4 book ai didi

java - 在android中获取图片文件夹的文件夹大小时出错

转载 作者:行者123 更新时间:2023-12-02 06:29:02 25 4
gpt4 key购买 nike

我在 Play 商店中发布了我的新应用程序,一位用户告诉我,当他在应用程序中打开 fragment 时,应用程序崩溃了。我有 logCat:

java.lang.NullPointerException
at com.dd.androreboot.devicefragment.getFolderSize(devicefragment.java:216)
at com.dd.androreboot.devicefragment.onCreateView(devicefragment.java:95)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
at android.app.BackStackRecord.run(BackStackRecord.java:635)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1397)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:426)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4849)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
at dalvik.system.NativeStart.main(Native Method)

在第 95 行我有这个

// Pictures
File pictures = new File(Environment.getExternalStorageDirectory().getPath()+"/Pictures/");
float picturesize=getFolderSize(pictures)/(1024f*1024f);

他有一个Lg optimus L9 P760所以我认为问题是手机没有图片文件夹或者它不在那个路径中所以应用程序崩溃了..可能是这个问题?

最佳答案

/sdcard/Pictures 对于普通 Android 手机来说默认应该存在(但是在使用之前您还应该确保该文件夹确实存在)。但最可能的原因可能是权限问题。

您是否需要 READ_EXTERNAL_STORAGE 权限?用户可以在开发者设置中强制执行此权限请求。此选项将使系统在安装过程中检查应用程序是否授予“READ”权限。如果您没有这样做,则无法打开 SD 卡中的文件。

查看该权限的官方文档说明:

public static final String READ_EXTERNAL_STORAGE

在 API 级别 16 中添加允许应用程序从外部存储读取。

任何声明 WRITE_EXTERNAL_STORAGE 权限的应用都会隐式授予此权限。

从 API 级别 19 开始强制执行此权限。在 API 级别 19 之前,不强制执行此权限,所有应用仍然有权从外部存储读取数据。您可以在运行 Android 4.1 或更高版本的设备上的“设置”应用中的“开发者选项”下启用“保护 USB 存储”,以强制执行权限来测试您的应用。

同样从 API 级别 19 开始,读取/写入 getExternalFilesDir(String) 和 getExternalCacheDir() 返回的应用程序特定目录中的文件不需要此权限。

注意:如果您的 minSdkVersion 和 targetSdkVersion 值都设置为 3 或更低,系统会隐式授予您的应用此权限。如果您不需要此权限,请确保您的 targetSdkVersion 为 4 或更高。

<小时/>

而且我不确定Lg optimus L9 P760是否有可拆卸的SDCARD,如果有的话,那也是另一种可能性。

关于java - 在android中获取图片文件夹的文件夹大小时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20237244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com