Початкова проблема

Під час спроби скомпілювати програму Android за допомогою gradlew я зіткнувся з критичною помилкою середовища, яка вказувала на те, що Java не налаштована належним чином:

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Проблеми встановлення Java

Перевіривши версію Java, я виявив, що Java не встановлено в моїй системі Ubuntu. Система запропонувала кілька доступних версій:

$ java --version
Command 'java' not found, but can be installed with:
sudo apt install default-jre              # version 2:1.17-75
sudo apt install openjdk-17-jre-headless  # version 17.0.12+7
sudo apt install openjdk-21-jre-headless  # version 21.0.4+7
# ... other versions available

Початкова спроба вирішення

Я встановив стандартний пакет JRE:

sudo apt-get install default-jre

Це встановило OpenJDK 21.0.6, але призвело до нової помилки компіляції:

BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' 
Unsupported class file major version 65

Виконайте кроки вирішення

1. Чиста інсталяція Java

Спочатку видаліть усі існуючі установки Java:

sudo apt purge openjdk-*

2. Оновлення версії Gradle

Після консультації з матрицею сумісності Gradle я оновив версію Gradle у gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip

3. Оновіть конфігурацію збірки

Змінено застарілу конфігурацію в app/build.gradle:

// Old configuration
// archivesBaseName = "$applicationId-v.$versionName"
// New configuration
base {
   archivesName = "$applicationId-v.$versionName"
}

4. Оновлення оболонки Gradle

Запустіть команду оболонки двічі, щоб забезпечити належне завантаження та налаштування:

./gradlew wrapper
./gradlew wrapper

Ключові висновки

  • Під час налаштування нового середовища розробки Android переконайтеся, що версія Java сумісна з вашою версією Gradle
  • Оновлюйте конфігурації збірки, щоб уникнути застарілого синтаксису
  • Чисте встановлення залежностей Java може вирішити проблеми конфлікту версій
  • Регулярні оновлення обгортки Gradle допомагають підтримувати стабільність збірки системи

Це налаштування забезпечує належне середовище розробки для створення додатків Android, уникаючи поширених проблем сумісності версій між Java і Gradle.