Android 5 中出现意外令牌错误,但在 Android 8 中没有

问题描述

我正在构建一个应该在 Android 8 和 Android 5 设备上运行的 Ionic 应用程序。该应用程序使用了我自己编写的两个 Cordova 插件,它在 Android 8 上运行良好,但是当我在 Android 5 上尝试时我我收到此错误

I/chromium( 3639): [INFO:CONSOLE(5)] "Uncaught SyntaxError: Unexpected token =>",source: http://localhost/plugins/cordova-plugin-logger/www/Logger.js (5)

Logger.js

var exec = require('cordova/exec');

var java = function(method,args) {
    return new Promise((resolve,reject) => {
        try {
            exec(resolve,reject,'Logger',method,args || []);
        } catch (err) {
            reject(err);
        }
    });
}

exports.TAG = "LOGGER";

exports.d = function(text) {
    return java("logD",[exports.TAG,text]);
}

exports.e = function(text,err) {
    if (!err && typeof text == "object") {
        err = text;
        text = "";
    }
    if (err && typeof err == "object") err = JSON.stringify(err);
    if (err) text = text + " " + err;
    return java("logE",text.trim()]);
}

同样的错误发生在其他插件插件的 js 文件中。我使用的是 Ionic 6.12.4 和 Cordova 10(由于设备的兼容性问题,我无法更新任何这些组件)。

对问题可能是什么有任何想法吗?

TIA

维克多·埃斯皮纳

解决方法

好吧,事实证明 Cordova 似乎不喜欢 Android 5 插件代码中的 TypeScript。我将箭头函数更改为普通函数,将 LET 更改为 CONST/VAR,现在它可以完美运行。