我有一个离子项目,需要使用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'
如果我执行以下步骤:
cordova platform remove android
)。rm -rf /node_modules /plugins
)。packaje.json
和config.xml
中的插件条目。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
兼容的次要版本的Batch插件(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
有什么解决办法吗?我找不到任何解决方案。人们在使用特定插件时会遇到此错误,但就我而言,所有插件都在发生这种错误!
谢谢!
答案 0 :(得分:0)
根据文档,您需要使用“ ionic cordova plugin add yourpluginname --nofetch”来将插件安装在Cordova7中。它在cordova 7文档中定义。请参考以下链接以获取更多详细信息:
https://cordova.apache.org/news/2017/05/04/cordova-7.html
会是这样
ionic cordova plugin add com.batch.cordova --nofetch