如何解决Nativescript 崩溃“预期的 Android API 级别为 21+,但为 30”
我的应用程序在我的真实设备和模拟器(Android 10 - API 29)上完美启动,但是当我尝试在 Android 11 - API 30 上模拟时,它在闪屏后崩溃并出现此错误:
StackTrace:
java.lang.ExceptionInInitializerError
at okhttp3.internal.platform.Platform.get(Platform.java:85)
at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:263)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:229)
at okhttp3.OkHttpClient.<init>(OkHttpClient.java:202)
at io.socket.engineio.client.Socket.<init>(Socket.java:215)
at io.socket.engineio.client.Socket.<init>(Socket.java:174)
at io.socket.client.Manager$Engine.<init>(Manager.java:638)
at io.socket.client.Manager$1.run(Manager.java:277)
at io.socket.thread.EventThread.exec(EventThread.java:55)
at io.socket.client.Manager.open(Manager.java:266)
at io.socket.client.Manager.open(Manager.java:256)
at io.socket.client.Socket$3.run(Socket.java:142)
at io.socket.thread.EventThread$2.run(EventThread.java:80)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 30
at okhttp3.internal.platform.AndroidPlatform.buildIfSupported(AndroidPlatform.java:238)
at okhttp3.internal.platform.Platform.findPlatform(Platform.java:202)
at okhttp3.internal.platform.Platform.<clinit>(Platform.java:79)
... 16 more
我发现 this article 说您必须更新 okhttp3,但我不知道如何在 nativescript 中执行此操作,我猜它在 nativescript/core 中?
我的环境:
- 本机版本:7.1.0
- Nativescript 核心:7.0.3
- Nativescript Vue:2.8.1
感谢大家的帮助
解决方法
此问题已在 3.12.13(旧版 Android)、3.14.7(Android 5+)和 4.9.1 中的 OkHttp https://github.com/square/okhttp/issues/6569 中修复 https://github.com/square/okhttp/blob/edf477cb4e7b1d59c6e3e5ac00870619340ce990/docs/changelog_3x.md#version-3147
有关更新依赖项的讨论和示例,请参阅 https://github.com/NativeScript/canvas/issues/32
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。