没有这样的文件 AndroidManifest.xml with cordova >= 7



我有一个离子项目,需要使用Batch。为了在上一个版本(2.0.0(中使用Batch,我应该将我的cordova-android更新为>=7.0.0

但问题是,如果我将该依赖项更新到所需的版本,那么所有其他插件都会失败,因为它们还不支持cordova-android版本。

基本上,它说找不到AndroidManifest.xml文件:

(node:8420) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: ENOENT: no such file or directory, open '/<mypath>/platforms/android/AndroidManifest.xml'

如果我执行以下步骤:

  1. 删除android平台(cordova platform remove android(
  2. 删除node_modules和插件(rm -rf /node_modules /plugins(
  3. 删除packaje.jsonconfig.xml中的插件条目
  4. 再次添加android平台(cordova platform add android(

创建了android平台。但是,如果我尝试添加批处理插件,我会遇到同样的错误(当他们说他们只支持cordova-android >= 7时(:

ionic cordova plugin add com.batch.cordova
> cordova plugin add com.batch.cordova --save
Installing "com.batch.cordova" for android
Failed to install 'com.batch.cordova': Error: ENOENT: no such file or directory, open '/<mypath>/platforms/android/AndroidManifest.xml'

例如,我提到这个插件是因为他们说他们只支持cordova-android >= 7,但在我的情况下,所有的cordova插件都是这样。

我可以使用一个小版本的批处理插件(1.7.4(,它与旧版本cordova-android兼容但那个版本的Batch没有应用内消息功能,在我的情况下是必需的。该版本只有推送通知和事件跟踪:/

这是我的离子信息:

cli packages: (/usr/lib/node_modules)
@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : 8.0.0 
local packages:
@ionic/app-scripts : 3.1.10
Cordova Platforms  : android 7.1.1
Ionic Framework    : ionic-angular 3.9.2
System:
Android SDK Tools : 26.0.2
Node              : v6.14.3
npm               : 4.6.1 
OS                : Linux 4.4
Environment Variables:
ANDROID_HOME : /home/ivan/Android
Misc:
backend : legacy

有什么解决方案吗?我找不到任何解决办法。人们在使用特定插件时会出现这种错误,但在我的情况下,所有插件都会出现这种情况!

谢谢!

根据文档,您需要使用"ionic cordova plugin add yourpluginname--noetch"在Cordova7中安装插件。它在cordova 7文档中有定义。有关详细信息,请参阅以下链接:
https://cordova.apache.org/news/2017/05/04/cordova-7.html

它将是这样

ionic cordova plugin add com.batch.cordova --nofetch

最新更新