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)。
我有一个 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)。