当我尝试访问手机的外部存储器时应用程序崩溃

我创建了一个简单的应用程序,它尝试访问手机的外部存储文件并将其显示在警报框中,代码如下所示。


btnShowDeviceFolders.setOnClickListener(new OnClickListener() {

        @Override

        public void onClick(View v) {

            CharSequence items[];


            final List<String> list = new ArrayList<String>();

            final File path =

                    Environment.getExternalStoragePublicDirectory

                            (

                                    //Environment.DIRECTORY_PICTURES

                                    Environment.DIRECTORY_DCIM

                                    //File.separator +"/"

                            );

            if(!path.exists())

            {

                //path.mkdirs();

             System.out.println("No file found");

            }

            String[] files = path.list();

            if (files.length == 0) {

                //System.out.println("The directory is empty");


            } else {

                for (String aFile : files) {


                    //System.out.println(aFile);

                    list.add(aFile);

                }

            }

            items = files;


            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

            builder.setTitle("Select Project Folder");

            builder.setItems(items, new DialogInterface.OnClickListener() {

                @Override

                public void onClick(DialogInterface dialog, int item) {


                    Toast.makeText(getApplicationContext(),list.get(item),Toast.LENGTH_LONG).show();

                                        }

            });

            builder.show();

        }

    });

但是这段代码在模拟器上运行良好,它向我列出了存在的文件夹,但是当我apk在我的手机上构建和测试它时它崩溃了(我正在使用 android Oreo 进行测试)。Stacktrace 没有给出任何错误

http://img2.mukewang.com/60b73af9000114d810130380.jpg

守着一只汪
浏览 158回答 3
3回答

呼唤远方

在 android_manifest.xml 文件中授予外部存储器的权限。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java