请帮助我。我编写此代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File dir=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File[] files=dir.listFiles();
Toast.makeText(this,files.length+"",Toast.LENGTH_LONG).show();
}
}
,并且出现此错误:
Caused by: java.lang.NullPointerException
at ir.itpro.videosample.MainActivity.onCreate(MainActivity.java:20)
我在目录下载中放入了3个文件。
如何立即修复?
答案 0 :(得分:0)
确保您已添加以下权限:
READ_EXTERNAL_STORAGE
此外,您如何将文件放在该目录中?通过下载管理器还是以编程方式?
答案 1 :(得分:0)
您是否已为清单添加了读取外部存储权限?如果没有,请添加
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
一行。
如果该应用没有权限,则
dir.listFiles()
返回null,因此您在null数组上调用length。
如果targetSdkVersion大于22,则需要处理权限运行时。可以在here中找到有关运行时权限的进一步说明。