Cordova不会创建AndroidManifest.xml

我在Cordova和AndroidStudio工作,以创建Android / iOS应用程序。 一切都工作正常,直到我昨天将我的Cordova更新为8。 我还将Node更新到最新版本。 当我创建Cordova项目并添加Android平台时。 它产生一个完全不同的目录结构。 我无法在项目的平台目录D:\testApp1\platforms\android看到assetsressrc文件夹。 更重要的是,上面的目录缺少AndroidManifest.xml ,这导致admob插件无法添加。

这是我在添加插件时遇到的错误:

无法安装’cordova-plugin-admobpro’:错误:ENOENT:没有这样的文件或目录,在Object.fs.openSync上打开’D:\ Projects \ testApp1 \ platforms \ android \ AndroidManifest.xml’(fs.js:646 :18)在Object.parseElementtreeSync(D:\ Projects \ testApp1 \ platforms \ android \ cordova \ node_modules \ cordova-common \ src \ util \ xml-helpers)的Object.fs.readFileSync(fs.js:551:33)。 js:180:27)在AndroidProject.getPackageName(D:\ Projects \ testApp1 \ platforms \ android \ cordova)的新AndroidManifest(D:\ Projects \ testApp1 \ platforms \ android \ cordova \ lib \ AndroidManifest.js:29:20) \ lib \ AndroidProject.js:99:12)在handleInstall(C:\ Users \ Rao \ AppData \ Roaming)的Api.addPlugin(D:\ Projects \ testApp1 \ platforms \ android \ cordova \ Api.js:223:57)位于C:\ Users \ Rao \ AppData \ Roaming \ npm \ node_modules \ cordova \ node_modules \ cordova-lib \ plugman \ install.js:357:28 at _fulfilled(C:\ Users \ Rao \ AppData \ Roaming \ npm \ node_modules \ cordova \ node_modules \ cordova-lib \ node_ modules \ q \ q.js:787:54)at self.promiseDispatch.done(C:\ Users \ Rao \ AppData \ Roaming \ npm \ node_modules \ cordova \ node_modules \ cordova-lib \ node_modules \ q \ q.js: 816:30)

有人可以帮忙吗?

编辑:随着人们不断提高答案,我将提供有关问题的更多细节。

问题不在于AndroidManifest.xmlconfig.xml上的插件编写。 确实,位置发生了变化,插件应该更新路径,但这不是强制性的,而Cordova负责新路径。

问题是一些使用source-file标签的插件用于不是源代码的东西。 (即,使用它来复制图像而不是使用resource-file标签)这会创建一个让Cordova感到困惑的res文件夹(或lib),让它相信它是一个古老的Eclipse项目,而它实际上是一个Android工作室项目,并搜索旧位置上的文件,而不是查看新位置。

这已经在cordova-android中修补,并将在下一版本中修复。 解决方法是使用source-file标记查找插件并将其更新为使用resource-file标记

老答案:

它现在位于app/src/main/AndroidManifest.xml

如果插件正在写入,则应更新以在正确的位置写入。

阅读cordova-android 7.0.0发布博客文章

Cordova CLI v8.0默认使用cordova-android@7.0.0

由于大多数cordova插件还不支持cordova-android@7.0.0 ,您也可以通过指定版本来尝试使用旧版本:

cordova platform add android@6.4.0

或者,如果你觉得使用cordova-android@7.0.0感觉很舒服,你也可以等到cordova-plugi-admobpro的更新来支持cordova-android@7.0.0 ,它即将推出。