鸿蒙3.0 APP混合开发闪退问题笔记

在鸿蒙3.0系统中,采用cordova混合开发的APP出现闪退,原因是系统对crosswork插件的兼容问题。字体识别错误和input标签使用可能导致APP崩溃。解决方法包括修改CordovaWebViewImpl.java文件,引入SystemWebViewEngine以提高兼容性,或者避免使用crosswork并确保标签使用规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

APP采用cordova混合开发, 鸿蒙2.0以及安卓操作系统正常使用,但是在鸿蒙3.0中出现APP闪退,对APP进行真机调试发现,鸿蒙3.0系统对crosswork插件存在兼容问题,这些问题会导致APP页面加载失败,进而导致App闪退

测试手机:Mate 30 Pro 5G 8G/256G

测试系统:HarmonyOS版本3.0.0

内核版本:5.10.43 HarmonyOS@localhost #1

补丁:2023年1月1日

核心问题:引入了crosswork问题

crosswork本身为了兼容老版本的手机,在android7之后会有闪退问题,在鸿蒙系统里如果有该插件会导致当页面中出现很多问题,比如:字体不识别闪退、存在input标签时闪退,如果要保留crosswork,可以做兼容处理。

编辑文件 /platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewImpl.java

引入包 import android.os.Build;

在 line76 后添加

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        className = "org.apache.cordova.engine.SystemWebViewEngine";
    }

如果没有sdk低,没有Build.VERSION_CODES.M,那就写死好了,23应该对应的Android 6.0

if (Build.VERSION.SDK_INT >= 23) {
            className = "org.apache.cordova.engine.SystemWebViewEngine";
        }




在使用crosswork插件时,遇到的问题,把crosswork兼容或者删掉以下都不是问题,都恢复正常

1、字体

不认识的字体,直接报错

font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;

如果改为 : font-family: "Times New Roman",Georgia,Serif; APP正常,闪退消失

无法使用@font-face自定义字体

2、标签不规范

3、可以使用div,无法使用input标签

致命问题,只能在高版本禁止使用crosswork

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牟云飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值