Android 为什么从存储器中选择文件时显示null?

Android 为什么从存储器中选择文件时显示null?,android,file,uri,Android,File,Uri,我想在一个按钮上选择一个pdf文件,然后将该文件发送到另一个按钮上的url。我的问题是选择pdf文件。我在“onActivityResult()”方法中得到null 我的代码是 SelectButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent()

我想在一个按钮上选择一个pdf文件,然后将该文件发送到另一个按钮上的url。我的问题是选择pdf文件。我在
“onActivityResult()”
方法中得到null

我的代码是

SelectButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent = new Intent();
            intent.setType("application/pdf");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Pdf"), PDF_REQ_CODE);

        }
    });
ActivityResult方法是

 @Override
   public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == PDF_REQ_CODE && resultCode == RESULT_OK && data != null && data.getData() != null) {

            uri = data.getData();;
            SelectButton.setText("PDF is Selected");

        }

    }
但是当我试图从uri获取文件路径时,我得到的uri为null,并且得到null指针异常。

试试这个,告诉我

 Button button = (Button) x.findViewById(R.id.buttonStripText);
        button.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.setType("file/*");
                startActivityForResult(intent,PICKFILE_RESULT_CODE);
}

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        switch(requestCode){
            case PICKFILE_RESULT_CODE:
                if(resultCode==RESULT_OK){
                   fileName = data.getData().getPath();
                }
                break;

        }
    }

你在android清单中添加了person吗?权限被添加到读写存储
中,但我得到的uri为null
你得到的不是uri而是意图<代码>意图数据。请重新格式化您得到的内容。
当尝试从uri获取文件路径时,会出现空指针异常。
您不应该尝试从uri获取路径。当然也不是uri为空时。但是代码在哪里?它是否打开以选择文件,它说了什么?我选择了文件,但我没有在“onActivityResult()”上获取它。请尝试显示一个字符串以查看它在哪里不起作用,URI