Приложение Ionic 5 больше не создается после обновления Android Studio

У меня есть приложение Cordova (не Capacitor) Ionic 5, над которым я работал некоторое время и строил много раз. Проверить что-то в другом проекте; кто-то дал мне проект, для создания которого требовался конденсатор. Кажется, что у Capacitor нет функции сборки cli, поэтому мне пришлось обновить Android Studio, чтобы построить оттуда. Это сработало.

Но теперь я больше не могу строить свой исходный проект. Однако он отлично работает в браузере.

Есть множество страниц с ошибками сборки, но наиболее подходящими образцами являются следующие:

E: \ www \ sz.app \ platform\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:11: ошибка: пакет android.support.annotation не существует import android.support.annotation.RequiresApi;

Задача:app:compileDebugJavaWithJavac FAILED E:\www\sz.app\platform\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:137: ошибка: не удается найти символ @RequiresApi(Build.VERSION_CODES.LOLLIPOP) ^ символ: класс RequiresApi расположение: класс IonicWebViewEngine.ServerClient

E: \ www \ sz.app \ platform\android\app\src\main\java\plugin\google\maps\PluginMap.java:192: ошибка: не удается найти символ boolean locationPermission = PermissionChecker.checkSelfPermission(cordova.getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) == PermissionChecker.PERMISSION_GRANTED; ^ символ: переменная PermissionChecker расположение: класс PluginMap

E: \ www \ sz.app \ platform\android\app\src\main\java\plugin\google\maps\PluginLocationService.java:260: ошибка: не удается найти символ public void onConnectionFailed(результат @NonNull ConnectionResult) { ^ 24 действенные задачи: 1 выполнено, 23 актуальных символа: класс NonNull

Ошибка выполнения для задачи ':app:compileDebugJavaWithJavac'.

Ионная информация:

Ионный:

Ionic CLI: 6.10.1 (C: \ Users \ Peter \ AppData \ Roaming \ npm \ node_modules@ ionic \ cli)Ionic Framework: @ 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-toolkit: 2.2.0

Конденсатор:

Конденсатор CLI: 2.1.0 @ конденсатор / сердечник: 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-run (доступно обновление: 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 ОС: Windows 7

1 ответ

Решение

Этот тип ошибки возникает, когда проект Android содержит ссылки как на библиотеку AndroidX (Jetifier), так и на ее устаревшую предшественницу, библиотеку поддержки Android. В проекте Cordova это обычно происходит, когда одни плагины перешли на AndroidX, а другие все еще используют библиотеку поддержки Android.

Сначала убедитесь, что AndroidX включен в вашем проекте Cordova. Либо убедитесь, что платформа Androidcordova-android@9или установите https://github.com/dpa99c/cordova-plugin-androidx вcordova-android@8 проект.

Затем установите https://github.com/dpa99c/cordova-plugin-androidx-adapter, который будет динамически исправлять исходный код плагинов для миграции из библиотеки поддержки Android в AndroidX. Обратите внимание, что в настоящее время это работает только для исходных файлов Java и XML (не для Kotlin или скомпилированных библиотек, например JAR или AAR).

Другие вопросы по тегам