相关疑难解决方法(0)

FileProvider - IllegalArgumentException:找不到配置的root

我正试图用相机拍照,但我收到以下错误:

FATAL EXCEPTION: main
Process: com.example.marek.myapplication, PID: 6747
java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Android/data/com.example.marek.myapplication/files/Pictures/JPEG_20170228_175633_470124220.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.marek.myapplication.MainActivity.dispatchTakePictureIntent(MainActivity.java:56)
    at com.example.marek.myapplication.MainActivity.access$100(MainActivity.java:22)
    at com.example.marek.myapplication.MainActivity$1.onClick(MainActivity.java:35)
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中:

<provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="com.example.marek.myapplication.fileprovider"
        android:enabled="true"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths" />
</provider>
Run Code Online (Sandbox Code Playgroud)

Java的:

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    // Ensure that there's a camera activity to handle the intent
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        // Create the File where the photo should go
        File photoFile = null;
        try {
            photoFile = createImageFile();
        } catch …
Run Code Online (Sandbox Code Playgroud)

android android-fileprovider

173
推荐指数
14
解决办法
10万
查看次数

ActivityResultContracts.TakePicture()

在 androidx.activity 版本 1.2.0-alpha05 中,TakePicture 合约的 API 已更改:

TakePicture 合约现在返回一个指示成功的布尔值而不是缩略图位图,因为在将图像写入提供的 Uri 时,相机应用程序很少支持这一点

虽然在 alpha04 回调中接收到一个 Bitmap 对象,但现在回调只接收一个描述成功的布尔对象。

所以现在launcher的launch方法的Uri Parameter一定不能为null,而必须是图片保存的目的地。没有设法创建一个被启动器接受的 Uri 对象,该对象可用于我的应用程序读取结果图片。

有没有人为我提供可以提供给启动器的有效 Uri 对象的示例?

android android-activity androidx

6
推荐指数
1
解决办法
4621
查看次数