提问人:BlackBird604 提问时间:12/8/2022 最后编辑:BlackBird604 更新时间:12/8/2022 访问量:1069
Angular 15、API 29 应用程序 - SyntaxError:意外的令牌?
Angular 15, API 29 App - SyntaxError: Unexpected token?
问:
当我尝试构建我的 Angular 应用程序并在 Android 10 (API 29) 模拟器上运行它时,我在设备上看到一个白屏,并在 Android Studio 中出现以下日志条目:
E/Capacitor/Console: File: http://localhost/ - Line 610 - Msg: SyntaxError: Unexpected token ?
E/Capacitor: JavaScript Error: {"type":"js.error","error":{"message":"Uncaught SyntaxError: Unexpected token ?","url":"http://localhost/main.31deaa0a1e940765.js","line":1,"col":1028,"errorObject":"{}"}}
E/Capacitor/Console: File: http://localhost/main.31deaa0a1e940765.js - Line 1 - Msg: Uncaught SyntaxError: Unexpected token ?
在此处的图像中,您可以看到 main.js 文件中意外的“?”标记的确切位置
可以使用标准 Angular 应用程序的可重现项目可以在这里找到: https://gitlab.com/BlackBird604/api29-syntax-error-example
这是我所做的:
- 创建了一个默认的 Angular 15 项目
- 添加了最新版本的 Capacitor (4.6.1)
- 配置电容器并构建项目
- 在装有 API 29 的 Pixel 2 设备上的 Android Studio (Dolphin | 2021.3.1 补丁 1) 中运行它
奇怪的是,该应用程序在网络浏览器以及 Android 11 和 12 模拟器上运行良好。我读到默认情况下只支持最后两个Android版本,将“tsconfig.json”中的目标设置为“ES2015”应该可以解决问题,但遗憾的是这里没有运气。我还尝试添加一个 .browserslistrc,但它也不起作用。
你们知道问题可能是什么吗? 我将非常感谢您的帮助:)
答:
1赞
Julio Cesar
12/8/2022
#1
Angular 15 不支持旧的 Chrome 版本,而 android 模拟器默认具有旧的 Chrome/WebView 版本。
您必须创建一个具有 Google Play 的模拟器,登录并将系统 WebView 包更新到最新版本。
或者,如果您想支持旧版本,请通过撤消此更改将 angular 降级为 14 https://github.com/ionic-team/starters/commit/dc48a925b5455e97099858428d2a74cc113bea47
评论