Android异常:无法找到包含xxx的配置根

时间:2016-11-25 15:49:52

标签: android android-fileprovider

我从getUriForFile方法中遇到异常问题,我在单击Button时尝试捕获图像但是当我执行该操作时应用程序崩溃。

我的日志是:

E/AndroidRuntime: FATAL EXCEPTION: main
              java.lang.IllegalArgumentException: Failed to find configured root that contains /data/data/XXXX/cache/JPEG_20161125_153048_-942097512.jpg
                  at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:711)
                  at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:400)
                  at com.example.pierre.mycamera.MainActivity.onClick(MainActivity.java:71)
                  at android.view.View.performClick(View.java:4091)
                  at android.view.View$PerformClick.run(View.java:17072)
                  at android.os.Handler.handleCallback(Handler.java:615)
                  at android.os.Handler.dispatchMessage(Handler.java:92)
                  at android.os.Looper.loop(Looper.java:153)
                  at android.app.ActivityThread.main(ActivityThread.java:5086)
                  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:821)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
                  at dalvik.system.NativeStart.main(Native Method)

在我的清单文件中,我写了这个:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
        android:maxSdkVersion="18" />
    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="XXXX"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths"></meta-data>
    </provider>

file_path.xml

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="my_images" path="Android/data/XXXX/files/Pictures/" />
</paths>

我的onClick方法:

if(v.getId == ...){

Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
photoFile = createImageFile();
photoURI = FileProvider.getUriForFile(this, "com.example.pierre.mycamera", photoFile);
captureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(captureIntent,1);
}

createImageFile:

private File createImageFile() throws IOException {
    // Create an image file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String imageFileName = "JPEG_" + timeStamp + "_";
    File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
    File image = File.createTempFile(
            imageFileName, /* prefix */
            ".jpg", /* suffix */
            storageDir /* directory */
    );
    // Save a file: path for use with ACTION_VIEW intents
    mCurrentPhotoPath = "file:" + image.getAbsolutePath();
    return image;
}

问题出在哪里?我该如何解决?

提前致谢。

0 个答案:

没有答案