首页 > 解决方案 > 电容器 - 未捕获的类型错误:cap.[some_function] 不是函数

问题描述

我刚刚将电容器升级到 3.2.x,当我尝试构建我的 Ionic 项目时,似乎几乎没有电容器功能起作用。例如,我收到如下错误:

Uncaught TypeError: cap.nativeCallback is not a function
...
Uncaught TypeError: Capacitor.createEvent is not a function
...
package com.getcapacitor.annotation does not exist

这是我的离子信息:

Ionic:

   Ionic CLI                     : 6.17.1 (/usr/local/lib/node_modules/@ionic/cli)
   Ionic Framework               : @ionic/angular 5.5.2
   @angular-devkit/build-angular : 0.1000.8
   @angular-devkit/schematics    : 10.0.8
   @angular/cli                  : 10.0.8
   @ionic/angular-toolkit        : 2.3.3

Capacitor:

   Capacitor CLI      : 3.2.3
   @capacitor/android : 3.0.0-beta.3
   @capacitor/core    : 3.2.3
   @capacitor/ios     : not installed

Cordova:

   Cordova CLI       : 10.0.0
   Cordova Platforms : android 9.1.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.2.1, (and 9 other plugins)

Utility:

   cordova-res : 0.15.3
   native-run  : 1.4.1

System:

   Android SDK Tools : 26.1.1 (/home/che-azeh/Android/Sdk)
   NodeJS            : v12.21.0 (/usr/bin/node)
   npm               : 7.5.2
   OS                : Linux 5.11

标签: ionic-frameworkcapacitor

解决方案


这是问题所在:如果您查看我的Ionic Info下的电容器部分,您会注意到电容器 CLI、@capaciotr/core 和 @capacitor/android 之间的不一致:

Capacitor:

   Capacitor CLI      : 3.2.3
   @capacitor/android : 3.0.0-beta.3
   @capacitor/core    : 3.2.3

所以我所做的就是将所有 3 个升级到最新版本:

npm install @capacitor/cli@latest @capacitor/core@latest
npm install @capacitor/android@latest

现在,它看起来像:

Capacitor:

   Capacitor CLI      : 3.2.3
   @capacitor/android : 3.2.3
   @capacitor/core    : 3.2.3

最后,我删除了由电容器(rm -R ./android)创建的 Android 文件夹,重新初始化电容器(npx cap init)重建离子项目(ionic build android),然后npx cap add android. 并解决了!零错误!


推荐阅读