Это решение вышеупомянутой ошибки, которую я хочу документировать. Я нашел другие подобные сообщения, но никто не описал, как эта ошибка может быть связана с Кордовой или Ионной.
Если вы не будете осторожны, может возникнуть несоответствие между версией Gradle, которую использует Android Studio, и версией Gradle, которую Cordova/cordova-android указывает в своем коде сгенерированного автоматически. Как вы знаете, бег
$ cordova platform add android
(или $ ionic platform add android
, если вы создаете приложение Ionic) создает собственный код приложения на-project/platform/android.
Внутри этой папки файл: /the-project/platforms/android/cordova/lib/builders/GradleBuilder.js экспортирует переменную, как показано ниже:
var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-x.y-all.zip';
Где х и у зависит, какая версия Кордовы/кордовы-андроида используется для создания собственного кода приложения.
Когда вы запускаете
$ cordova build android
Версия Gradle, указанная в distributionUrl
var, является версией, используемой для сборки.
Теперь вот сложная часть. Когда вы импортируете проект в Android Studio, вы, скорее всего, получите сообщение, в котором настоятельно рекомендуется обновить Gradle до более новой версии, как показано ниже:
Если вы сделаете это, Android Studio загрузит новую версию Gradle и сохранит ее локально и настроит проект на использование недавно загруженного локального дистрибутива Gradle, который является вариантом радио ниже выбранной "Использовать оболочку класса по умолчанию", которая Я закончил отменять выбор, потому что это вызовет ошибки.
Это вызовет проблемы, поскольку Android Studio и Cordova теперь будут пытаться создать приложение с различными версиями Gradle, и вы получите ошибки сборки в Android Studio, а также с помощью
$ cordova build android
в командной строке. Решение с приложениями Cordova должно всегда включать в проект Android Studio "Использовать оболочку градиента по умолчанию" и игнорировать заманчивые сообщения для обновления. Если вы хотите использовать более новую версию Gradle, вы всегда можете изменить дистрибутив Url var в упомянутом выше файле (однако Cordova категорически не рекомендует изменять код в папке платформ, так как он легко перезаписывается). На момент написания этого я не могу сказать, есть ли способ установить версию Gradle на
$ cordova platform add android
шаг, то есть когда вы захотите сделать это, чтобы вы никогда не изменяли код внутри проектов/платформ