- 真机连电脑,打开USB调试
- chrome浏览器输入:chrome://inspect/#devices
edge浏览器输入:edge://inspect/#devices
看控制台输出有没有报错 - 选择下图位置 搜索方法名称,找出出错的具体地方
- 如果是插件类的,可以打开android studio, 找到插件java文件,用debug模式运行,打断点,按F9下一步定位问题位置,可以直接改java文件然后重新运行,测试改的对不对,然后再去代码里对应插件位置改好
- 举例:我遇到问题FileError {code: 2, message: ‘SECURITY_ERR’},调查发现是file插件问题。android6(API 23)之后需要动态权限申请,但插件里的还是默认认为打开APP就获取了全部权限,插件代码里没有检查和申请权限,所以需要增加动态申请权限的代码。然后可以从npm上找到插件,然后打开github文件,去具体文件里 对比每个标签版本的不同和是否有自己需要的代码,可以看看是从哪个版本之后开始需要的。
- OPPO手机连电脑装app,未备案的app不允许被安装,导致打不开,注意!
- npm ERR! Cannot read properties of undefined (reading ‘extraneous’) 前一次的项目编译残留在package-lock.json文件中的三方包引起的。
解决: 删除node_modules,删除package-lock.json文件,然后npm i就好用了。
遇到个问题求助:
本人环境有多个jdk版本,用环境变量控制哪个生效。在VSCode中,目录下查java -version显示1.8, 但打包之后报错需要1.8的版本 说我目前是jdk17. (实际我查jdk版本的时候是1.8,不理解为什么,有了解的评论区见)
报错:Requirements check failed for JDK 1.8.x! Detected version: 17.0.10
Check your ANDROID_SDK_ROOT / JAVA_HOME / PATH environment variables.
解决: 我从Android Studio打包,报错提示NDK版本不对,下载了需要的NDK打包成功。从VSCode更新代码(打包还是提示刚刚的错),执行命令ionic cordova prepare android,再去Android Studio打包 就把刚刚更新的ts文件的修改打包进去了。
手动清除java缓存:
打开控制面板(Windows)或系统偏好设置(Mac)。
在控制面板中,找到Java控制面板选项。
在Java控制面板中,切换到“常规”选项卡。
在“临时Internet文件”部分,点击“设置...”按钮。
点击“删除文件”按钮。
确认删除所有缓存文件。
关闭Java控制面板。
在Android Studio中检查了Gradle项目中的build.gradle文件,没问题
tasks.withType(JavaCompile) {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
ionic cordova build android 等价于 ionic cordova prepare android + ionic cordova compile android