使用Cordova构建时清单中存在多个“uses-permissions”

2o7dmzc5  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(209)

我需要一些关于AndroidManifest的“使用权限”的帮助。
我有一个 cordova 项目,有一些插件。当我启动cordova run android时,我得到这个错误:

Element uses-permission#android.permission.ACCESS_FINE_LOCATION at AndroidManifest.xml:35:5-79 duplicated with element declared at AndroidManifest.xml:32:5-79
[...]
Execution failed for task ':app:processDebugMainManifest'.
> Manifest merger failed with multiple errors, see logs

我注意到plugin.xml中的uses-permission(在每个插件的文件夹中),分别为每个插件触发,添加它们的权限,而不是将它们合并到AndroidManifest.xml中。
这是我的清单。如您所见,uses-permissions是重复的:[1]第1页
插件文件夹是自动生成的,当我添加插件,所以我需要一个解决方案“外”这个文件夹,这意味着我不想手动编辑文件夹内的plugin.xml
config.xml中,我添加了以下内容:

<platform name="android">
  <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/uses-permission[@android:name='android.permission.ACCESS_FINE_LOCATION']">
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  </edit-config>
</platform>

然后我跑了:

cordova platform rm android
rm -r package-lock.json
rm -r node-modules (folder)
rm -r plugins (folder)

然后

npm install
cordova platform add android

但是,当我再次运行cordova run android时,权限仍然重复。
我的筹码:

Cordova Packages:

    cli: 11.0.0
        common: 4.0.2
        create: 4.0.0
        lib: 11.0.0
            common: 4.0.2
            fetch: 3.0.1
            serve: 4.0.0

Project Installed Platforms:

    android: 10.1.2

Environment:

    OS: macOS Monterey 12.4
    Node: v14.19.3
    npm: 6.14.17

感谢所有人:)

jc3wubiy

jc3wubiy1#

您正在权限节点内添加权限。请将xml更改为

<platform name="android">
     <config-file parent="/manifest" target="AndroidManifest.xml">
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     </config-file>
 </platform>

相关问题