安卓清单文件未检测到XML文件。

3
我正在使用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>

文件是:

<?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>

根据解决方案资源管理器中的显示,文件路径确实是Client.Android/Resources/xml/file_paths.xml


我已经检查了Mainfest中的位置和标签,应该没问题。你创建了一个新项目来测试吗?尝试使用androidx.core.content.FileProvider代替。 - undefined
我刚刚创建了一个新项目,并设置了xml文件和AndroidManifest,但仍然出现错误。在清单文件中有多个<application>标签是可以的吗? - undefined
只有<manifest><application>元素是必需的。它们每个都只能出现一次。将您的provider添加到先前的<application>中,并删除另一个。 - undefined
2个回答

6
你需要更改file_paths.xml文件的BuildAction。
改为:
AndroidResourceAnalysisConfig 

To:

 AndroidResource

0
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" package="com.companyname.app1">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="30" />

<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:icon="@mipmap/icon"
    android:label="Client.Android"
    android:theme="@style/MainTheme"
    android:allowBackup="true"
    android:requestLegacyExternalStorage="true"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true">

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

  </application>

  </manifest>

你的清单给我生成了相同的错误。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接