无法获取提供程序androidx.core.content.FileProvider:java.lang.IllegalArgumentException:缺少android.support.FILE\u provider\u路径元数据?
我看过很多这样的帖子,但仍然不知道问题出在哪里。我尝试更改文件_paths.xml中的路径和名称 文件_paths.xml:无法获取提供程序androidx.core.content.FileProvider:java.lang.IllegalArgumentException:缺少android.support.FILE\u provider\u路径元数据?,java,android,Java,Android,我看过很多这样的帖子,但仍然不知道问题出在哪里。我尝试更改文件_paths.xml中的路径和名称 文件_paths.xml: <?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <external-path name="pirosfogo_images" path="storage/emulated/0/pi
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
name="pirosfogo_images"
path="storage/emulated/0/pictures/"/>
</paths>
为什么会出现错误?这是因为您在错误的父项(
标记)中指定了
标记。它应该在
标记中指定。(下面的两个代码段显示了区别:)
这是否回答了您的问题?android.support.FILE\u PROVIDER\u路径
元数据应该设置在
标签内。不,我已经看过这个问题及其答案,但感谢我在前面的评论中提到的,出现错误的原因是您在错误的父项中指定了元数据
——它应该是
标记,而不是
标记。您能告诉我这是什么样子吗?自动完成文本没有显示给我使用此修复程序,我仍然得到以下错误:java.lang.RuntimeException:无法获取提供程序androidx.core.content.FileProvider:java.lang.IllegalArgumentException:缺少android.support.FILE\u provider\u路径元数据我以某种方式恢复了更改,并认为我遇到了另一个问题,但事实上,这就是问题所在。
<application
...
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.kijevigombooc.pirosfogo.fileprovider"
android:exported="false"
android:grantUriPermissions="true"/>
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</application>
void takePhoto(){
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 110);
}
else
{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null)
{
File photoFile = createPhotoFile();
if(photoFile != null){
pathToFile = photoFile.getAbsolutePath();
Uri photoURI = FileProvider.getUriForFile(ProfileEdit.this, "adada", photoFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(intent, REQUEST_CAMERA);
}
}
}
}
private File createPhotoFile() {
String name = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File storageDir = getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File image = null;
try{
image = File.createTempFile(name, ".jpg", storageDir);
} catch(Exception e){}
return image;
}