当前位置: 首页 > 知识库问答 >
问题:

不允许操作,在ionic中添加cordova-plugin-firebase插件时取消链接

范承教
2023-03-14

安装“Cordova-plugin-firebase”为android操作过程中的错误!试图还原...安装'Cordova-plugin-firebase'失败:错误:哦哦!EPERM:不允许操作,在mayCopyFile(F:\ionic\pkjshopmerchant\platforms\android\app\srcr\mainn'处取消'f:\ionic\pkjshopmerchant\platforms\android\cordova\node_modules\fs-extrat\lib\copy-sync.js:59:8)的object.unlinksync(Fs.js:1129:3)链接

共有1个答案

常光明
2023-03-14

正如这个链接所评论的:https://github.com/arnesson/cordova-plugin-firebase/issues/1154有一个正确的解决方案,它不会降级到Cordova@8.0.0

研究了firebase插件安装过程中出现的错误消息,我们进行了一次调试会话,发现当插件试图将google-services.json文件从插件文件夹复制到项目文件夹时,出现了问题。

错误消息是:操作过程中出错!试图还原...安装'Cordova-plugin-firebase-lib'失败:错误:哦!EPERM:不允许操作,取消链接“[我的项目文件夹]\apk\platforms\android\app\src\main”

从堆栈跟踪中,我们看到复制操作由copy-sync.js javascript文件中的mayCopyFile函数处理,该文件位于..\apk\node_modules\fs-extrade\lib\copy-sync文件夹中。

下面是函数体:

function mayCopyFile (srcStat, src, dest, opts) {
  if (opts.overwrite) {
    fs.unlinkSync(dest)
    return copyFile(srcStat, src, dest, opts)
  } else if (opts.errorOnExist) {
     throw new Error('${dest}' already exists)
  }
}

这里调用fsunlinkSync和copyFile会使安装崩溃。我们无法继续进行调试,也许继续下去会更好,但我们停在这里,找到了以下解决方案:

如果还没有:cordova platform rm android cordova platform添加android@9.0.0

注释掉..\apk\node_modules\fs-extrade\lib\copy-sync copy-sync.js文件中的mayCopyFile函数中的fsunlinkSync和copyFile行。

安装firebase插件:cordova插件添加cordova-plugin-firebase-lib@3.0.0(我们一直使用这个库。不幸的是,cordova-plugin-firebase会出现其他构建错误)

看到插件已经安装,平台是android 9.0.0 cordova plugin ls cordova platform ls

手动将google-services.json文件从..\apk\plugins\cordova-plugin-firebase\src\Android位置复制到..\apk\platforms\android\app\src\main目的地。

在cordova构建之前,取消注释在第3步中注释掉的代码行,因为cordova构建会将大量文件从某个源位置复制到某个目标位置,而手动复制这些文件并不明智。

       cordova build android

       cordova run android

这管用了。当然,我们添加了cordova-device-plugin,编辑了config.xml,将google-services.json添加到项目根文件夹中,等等,这些都是为了使插件正常工作。

 类似资料:
  • Nitishs MacBook Air:~Nitishan和$cd myApp Nitishs MacBook Air:myApp Nitishan和$sudo ionic平台添加android下载默认ionic资源 下载:https://github.com/driftyco/ionic-default-resources/archive/master.zip[=================

  • 问题内容: 我正在尝试在用户空间中使用mmap读取“ mem_map”开始的物理内存。它是一个包含所有物理页面的数组。这是一台运行3.0内核的i386计算机。 代码是这样的: 我以此为根。输出为: 可以肯定的是,我搜索了问题并将以下行添加到我的/etc/sysctl.conf文件中: 但这也不起作用。 谁知道为什么不允许这样的mem_map操作,以及如何解决呢? 谢谢。 问题答案: 听起来好像内核

  • 我在Ionic应用程序中以演示模式成功调用Pdf417 phonegap/cordova插件扫描功能时遇到麻烦。我正在iOS上使用Ionic View测试插件。 这里是一个链接的Github存储库,其中包含应用程序的简化版本,只有一个状态和控制器。 不幸的是,当我测试它时,我完全弄不明白为什么这不起作用。我在浏览器中遇到一个错误,说“cordova未定义”,我认为这是因为cordova插件在浏览器

  • 当我试图打开索引时。php在浏览器中我看到错误: 在error.log: 2013/11/04 22:40:07[错误]3435#0:*4发送到stderr的FastCGI:“无法打开主脚本:/var/www/index.php(不允许操作)”,同时从上游读取响应头,客户端:10.0。2.2,服务器:localhost,请求:“GET/HTTP/1.1”,上游:fastcgi://127.0.0.

  • 每当我将添加到解决方案中时,在构建过程中就会出现一个错误:app:transformClassesWithStackFramesFixerforDebug。在下面添加了整个输出。Project是一个空的Cordova插件,除了安装的插件什么都没有。感谢援助。下面添加了Stacktrace。我用的是最新的科尔多瓦版本。 目前,我尝试的是: null

  • 我当前想在项目中安装节点sass,但每次出现此错误时 错误:无法重命名临时“发布/对象”。target/libsass/src/libsass/src/color\u maps-5ff12a01。o、 tmp“输出文件”发布/目标。target/libsass/src/libsass/src/color\u映射。o“:”不允许操作“生成了2个警告和1个错误。make:**[发布/obj.targe