作者:负能量包子玻璃包各负磁场宣泄区 | 来源:互联网 | 2023-01-04 10:31
我在Cordova和AndroidStudio工作,以创建Android/iOS应用程序.一切都工作正常,直到我昨天将我的Cordova更新为8.我还将Node更新到最新版本.当我创建Cordova项目并添加Android平台时.它产生一个完全不同的目录结构.我无法看到assets
,res
以及src
项目平台目录中的文件夹D:\testApp1\platforms\android
.更重要的是,上面的目录丢失了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)
有人可以帮忙吗?
1> Raymond Xie..:
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
,即将推出.
救了我的一天!为我工作.
刚刚破坏了一切...:S
2> jcesarmobile..:
最终编辑:
cordova-android 7.1.4已经出来了,应该解决大部分这类问题.
编辑:
随着人们不断提高答案,我将提供有关问题的更多细节.
问题不在于插件写在AndroidManifest.xml
或上config.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发布博客文章
如果在项目的根目录中有一个'res'文件夹,即使在更新plugin.xml中的路径后仍会出现此错误(由于Eclipse项目检测)
3> 小智..:
在config.xml
cordova项目的文件中,在xml标记
部分下,添加以下标记: