Ionic 5 应用程序在更新 Android Studio 后不再构建

Ionic 5 app no longer builds after updating Android Studio

我有一个 Cordova(不是 Capacitor)Ionic 5 应用程序,我已经开发了一段时间并构建了很多次。检查另一个项目的东西;有人给了我一个需要 Capacitor 来构建的项目。 Capacitor 似乎没有 cli 构建功能,所以我需要升级 Android Studio 才能从那里构建。成功了。

但是现在我不能再构建我原来的项目了。然而,它在浏览器中 运行 很好。

有很多构建错误页面,但最相关的样本似乎是这些:

E:\www\sz.app\platforms\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:11: 错误:包 android.support.annotation 不存在 导入 android.support.annotation.RequiresApi;

Task :app:compileDebugJavaWithJavac FAILED E:\www\sz.app\platforms\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:137: error: cannot find symbol @RequiresApi(Build.VERSION_CODES.LOLLIPOP) ^ symbol: class RequiresApi location: class IonicWebViewEngine.ServerClient

E:\www\sz.app\platforms\android\app\src\main\java\plugin\google\maps\PluginMap.java:192: 错误: 找不到符号 布尔 locationPermission = PermissionChecker.checkSelfPermission(cordova.getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) == PermissionChecker.PERMISSION_GRANTED; ^ 符号:变量 PermissionChecker 位置:class PluginMap

E:\www\sz.app\platforms\android\app\src\main\java\plugin\google\maps\PluginLocationService.java:260: 错误: 找不到符号 public void onConnectionFailed(@NonNull ConnectionResult 结果) { ^ 24 个可操作任务:1 个已执行,23 个是最新的 符号:class NonNull

任务“:app:compileDebugJavaWithJavac”执行失败。

离子信息:

离子:

Ionic CLI:6.10.1 (C:\Users\Peter\AppData\Roaming\npm\node_modules@ionic\cli) 离子框架:@ionic/angular 5.1.1 @angular-devkit/build-angular:0.901.6 @angular-devkit/schematics:9.1.6 @angular/cli:9.1.6 @ionic/angular-工具包:2.2.0

电容器:

电容器 CLI:2.1.0 @capacitor/core:2.1.0

科尔多瓦:

Cordova CLI:未安装 Cordova 平台:不可用 Cordova 插件:cordova-plugin-ionic-keyboard 2.2.0,cordova-plugin-ionic-webview 4.2.1,(和其他 9 个插件)

效用:

cordova-res:未安装 native-运行(可用更新:1.0.0):0.2.8

系统:

Android SDK工具:26.1.1 (C:\android-sdk) NodeJS:v12.18.2 (C:\Program Files\nodejs\node.exe) npm:6.14.5 OS : Windows 7

当 Android 项目包含对 AndroidX (Jetifier) 库及其已弃用的前身 Android 支持库的引用时,会发生此类错误。 在 Cordova 项目中,这通常发生在某些插件已迁移到 AndroidX 而其他插件仍在使用 Android 支持库时。

首先确保在您的 Cordova 项目中启用了 AndroidX。 确保 Android 平台是 cordova-android@9 或将 cordova-plugin-androidx 安装到 cordova-android@8 项目中。

然后安装 cordova-plugin-androidx-adapter,它将动态修补插件的源代码,以便从 Android 支持库迁移到 AndroidX。 请注意,这目前仅适用于 Java 和 XML 源文件(不适用于 Kotlin 或编译库,例如 JAR 或 AAR)。