Cordova Android平台7.x插件安装报错:找不到AndroidManifest.xml
解决Cordova Android 7.x版本插件找不到AndroidManifest.xml的问题
我之前碰到过完全一样的情况,当时也是Ionic v1项目升级Android平台到7.x后,某款老插件一直报找不到Manifest文件的错误,其他插件却能正常工作。给你几个亲测有效的解决方案:
1. 修改插件的Manifest路径配置
Cordova Android 7.x最核心的结构变化之一,就是把AndroidManifest.xml从平台根目录移到了platforms/android/app/src/main/下。很多旧插件的plugin.xml里还在用旧路径,自然会找不到文件。
- 定位到出问题的插件目录(一般在
plugins/[插件ID]路径下) - 打开
plugin.xml,找到所有包含target="AndroidManifest.xml"的<config-file>标签 - 将目标路径修改为
target="app/src/main/AndroidManifest.xml"
举个例子,原来的代码:
<config-file target="AndroidManifest.xml" parent="/manifest"> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> </config-file>
修改后:
<config-file target="app/src/main/AndroidManifest.xml" parent="/manifest"> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> </config-file>
2. 修复插件的钩子脚本
如果这款插件包含自定义的Node.js钩子脚本(比如在hooks/目录下),脚本里可能硬编码了旧的Manifest路径。
- 打开插件的钩子脚本文件
- 查找所有类似
path.join('platforms', 'android', 'AndroidManifest.xml')的代码 - 替换为
path.join('platforms', 'android', 'app', 'src', 'main', 'AndroidManifest.xml')
3. 更新插件到适配7.x的版本
很多插件作者已经针对Cordova Android 7+做了适配,先去npm仓库搜索这款插件,看看有没有最新版本。执行以下命令更新:
cordova plugin remove [插件ID] cordova plugin add [插件ID]@latest
如果是你自己开发的插件,按上面两个方法修改后重新安装即可。
4. 临时应急方案(不推荐长期使用)
如果暂时没法修改插件,可以在添加Android平台后,手动复制Manifest文件到旧路径,再安装插件:
cordova platform add android@7.1.0 cp platforms/android/app/src/main/AndroidManifest.xml platforms/android/ cordova plugin add [插件ID]
这个方法每次重新添加平台都要重复操作,只能作为临时救急的办法。
另外你提到修改config.xml无效,是因为config.xml里的配置是针对项目本身的Manifest路径,而插件的路径是插件自身定义的,所以必须修改插件的配置才能生效。
内容的提问来源于stack exchange,提问作者Lucas Simões Martins
相关产品推荐
相关产品推荐

