ionic-framework - 电容器 - 未捕获的类型错误: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 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
. 并解决了!零错误!
推荐阅读
- android - 更改android中的默认字符串xml文件
- python-3.x - AWS Lambda 到 DynamoDB 超时
- python - 在 Python 中制作 pi 数字的可视化表示
- amazon-web-services - 亚马逊网络服务 - Route53
- algorithm - 运动数据比较
- javascript - 使用 ajax 和现有表单数据上传文件
- mysql - 循环中的 bindParam 始终写入最后一个值
- excel - 将 Microsoft Project 对象库导入 Excel VBA 项目
- javascript - 如何在 mouseon 和 mouseout 上更改动画颜色?
- python - 带有错误 URL 的 URL 请求 Python