Rea*_*inn 3 xml android xamarin.forms
我正在使用 Xamarin.Forms 开发应用程序。我正在使用Xam.Plugin.Media访问我的手机摄像头。正如文档中所述,我应该在资源文件中创建新文件夹,然后在 AndroidManifest 文件中添加文件提供程序配置。由于某种原因,我收到错误:
处理清单失败。找不到资源 xml/file_paths(又名 com.companyname.client:xml/file_paths)。此错误可能是由源代码文件中的 AndroidManifest.xml 或 Android 清单生成属性引起的。
我花了一些时间试图找到问题,但没有运气。我的清单如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.client" android:installLocation="auto">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="30" />
<application android:label="Client.Android" android:theme="@style/MainTheme" android:icon="@mipmap/icon"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application android:label="client">
<provider android:name="android.support.v4.content.FileProvider" android:authorities="com.companyname.client.fileprovider"
android:exported="false" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"></meta-data>
</provider>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
该文件是:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-files-path name="my_images" path="Pictures" />
<external-files-path name="my_movies" path="Movies" />
</paths>
Run Code Online (Sandbox Code Playgroud)
正如我在解决方案资源管理器中看到的,文件路径确实是 Client.Android/Resources/xml/file_paths.xml
您需要更改 file_paths.xml 文件的 BuildAction。
改变:
AndroidResourceAnalysisConfig
Run Code Online (Sandbox Code Playgroud)
到:
AndroidResource
Run Code Online (Sandbox Code Playgroud)