【问题标题】:Ionic - Uncaught SyntaxError: Unexpected token On APKIonic - Uncaught SyntaxError: Unexpected token On APK
【发布时间】:2021-07-14 09:15:33
【问题描述】:

我从昨天开始尝试修复一个错误。我使用以下方法成功构建了一个 android apk:

ionic cordova build android --prod --release

但应用在设备和模拟器 (GenyMotion) 上卡在白屏上。我检查了 GenyMotion 的 logcat。我想出了这些:

>  I/chromium( 5497): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token )", source: http://localhost/runtime.fcad956485f9614ff8b1.js (1)
>  D/SystemWebChromeClient( 5497): http://localhost/polyfills.49d987a1d15d60566c3f.js: Line 1 : Uncaught  SyntaxError: Unexpected token =>
> I/chromium( 5497): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token =>", source: http://localhost/polyfills.49d987a1d15d60566c3f.js (1)
> D/SystemWebChromeClient( 5497): http://localhost/main.2be168d95557cbdc0a3f.js: Line 1 : Uncaught SyntaxError: Unexpected token =>

> I/chromium( 5497): [INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token =>", source: http://localhost/main.2be168d95557cbdc0a3f.js (1)

我不知道为什么。它们在构建时没有错误。

我的 package.json

... 
"@angular/common": "~12.0.1",
"@angular/core": "~12.0.1",
"@angular/forms": "~12.0.1",
"@angular/platform-browser": "~12.0.1",
"@angular/platform-browser-dynamic": "~12.0.1",
"@ionic/angular": "^5.5.2",
"ionic": "^5.4.16",
"cordova-android": "^9.0.0",
"cordova-browser": "^6.0.0",
"cordova-ios": "^5.1.1",
"cordova-plugin-ionic-webview": "^5.0.0",
... 
"@typescript-eslint/eslint-plugin": "4.16.1",
"@typescript-eslint/parser": "4.16.1",
"typescript": "~4.2.4"

我的 tsconfig.json。

...  
"target": "es2015", 
"module": "es2020",
"lib": ["es2018", "dom"] 
...  

【问题讨论】:

    标签: android angular cordova ionic-framework mobile


    【解决方案1】:

    为了解决这个问题,经过真正的战斗 3 天后, 我解决了这个问题。 Ionic 5 angular 12 在构建时使用 es2015 作为目标。 我在 tsconfig.json 中将“target”设置为 es5,运行时出现错误。**.js,polyfills.**.json 消失了

    es5 将 ES6 函数转换为标准函数。

    更多信息见 https://www.typescriptlang.org/tsconfig

    【讨论】:

      【解决方案2】:

      这里很清楚。您有语法错误。我想您可以查看ionic cordova build android --prod 的日志。可能它会显示哪些文件和行会产生这些问题。

      如果您使用 linter,您可以尝试运行 npm run lint 来检查您的代码是否存在任何问题。

      【讨论】:

      • 你好丹尼尔。感谢您的回答。我运行 npm run lint 。没有显示严重错误。所有这些都是关于最佳实践的,例如 camelCase、严格比较、声明 const。未找到与 ) => 相关的错误。另外,我迁移到了 cordova-android@latest。我仍然有错误
      • @Rehum 在这种情况下,您可以尝试在 Chrome 开发人员工具中检查日志(使用 ionic serve)或检查您的启动逻辑是否有语法错误。你的代码肯定有语法错误。通常,Observable.subscribePromise.then().catch() 逻辑附近有很多括号。
      • 哇哦。这是很多代码。我第一次运行 ionic cordova build browser --prod 。它可以帮助我修复代码的某些部分。当我运行 ionic serve 没有错误发生。当我使用 chrome chrome://inspects#devices 检查设备时。它提到了上面提到的相同错误。我在在线 JS lint 平台上发送代码。未发现严重错误。真的。我不知道
      • @rehum 你是怎么解决这个问题的,我也有同样的问题,
      • 你好@BonifacePereira,我在一场真正的战斗后解决了它。只需查看接受的答案
      猜你喜欢
      • 2016-11-28
      • 2013-11-03
      • 1970-01-01
      • 2012-05-17
      • 2019-02-10
      • 2014-07-08
      • 2011-03-09
      • 2014-01-06
      • 2012-04-10
      相关资源
      最近更新 更多