Ionic 错误:无法创建照片在磁盘上的Android -离子使用电容相机插件

yeotifhr  于 12个月前  发布在  Ionic
关注(0)|答案(2)|浏览(137)

我试图使用Ionic中的电容相机插件(v7)为Android应用程序(没有在iOS中测试,但在Web上没有问题).这是代码来获取图像:

const image = await Camera.getPhoto({
  quality: 100,
  allowEditing: true,
  resultType: CameraResultType.DataUrl,
  source: CameraSource.Camera,
  saveToGallery: false,

});

字符串
当我尝试运行相机时,我收到此错误消息:
第一个月
我在我的AndroidManifest中有这样的设置:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.MANAGE_MEDIA" />

<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />

<uses-feature android:name="android.hardware.camera.any" android:required="true" />
<uses-feature android:name="android.hardware.location.gps" android:required="true"/>


任何帮助将是非常欢迎的。

xpcnnkqh

xpcnnkqh1#

您缺少FileProvider。即使saveToGallery设置为false,图像也必须保存到设备。您无法从图库访问它们。
Android Studio的完整错误消息是:

Unable to create photo on disk
java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority my.example.app.fileprovider at 
androidx.core.content.FileProvider.getFileProviderPathsMetaData(FileProvider.java:664) at 
androidx.core.content.FileProvider.parsePathStrategy(FileProvider.java:695) at 
androidx.core.content.FileProvider.getPathStrategy(FileProvider.java:645) at 
androidx.core.content.FileProvider.getUriForFile(FileProvider.java:449)

字符串
有关如何添加FileProvider的信息,请查看此帖子:Couldn't find meta-data for provider with authority

z9ju0rcb

z9ju0rcb2#

要启用使用电容相机的文件提供程序,请检查此代码块(内部< application >标记)是否在AndroidManifest.xml上,由于某种原因,它刚刚在我的代码中删除。

<provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}.fileprovider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths"></meta-data>
    </provider>

字符串

相关问题