Ошибка compileDebugJavaWithJavac с Android Studio Flamingo

Когда я обновил Android Studio до версии Flamingo, Gradle предложил обновление, и я обновился с помощью AGP с 7.4 до 8.0. После этого обновления мне так и не удалось выполнить отладку, и в результате моих исследований я не смог прийти к выводу. Если какой-то информации, которую я дал, не хватает по проблеме, если укажете, могу внести дополнения. Я делюсь своими кодами приложений модуля gradle, потому что думаю, что проблема связана с этим.

Мой build.gradle (приложение):

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

android {
    useLibrary 'org.apache.http.legacy'
    compileSdkVersion 33

    defaultConfig {
        applicationId "com.example.packagename"
        multiDexEnabled true
        minSdkVersion 22
        targetSdkVersion 33
        versionCode 15
        versionName "1.4"

    }
    buildTypes {
        release {
            minifyEnabled true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    kotlinOptions {
        jvmTarget = '11'
    }
    namespace 'com.example.packagename'

}

Ошибка:

Execution failed for task ':app:compileDebugJavaWithJavac'.
> superclass access check failed: class butterknife.compiler.ButterKnifeProcessor$RScanner (in unnamed module @0x1db9193f) cannot access class com.sun.tools.javac.tree.TreeScanner (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.tree to unnamed module @0x1db9193f
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDebugJavaWithJavac'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:149)
.
.
.

Я пробовал почти все предложения, упомянутые в StackOverFlow для решения, но не смог найти решение.

проверьте мой ответ, он у меня работает stackoverflow.com/a/76070809/12936324

Jayesh Dankhara 21.04.2023 09:20

Спасибо за ответ, но я получаю эту ошибку: Минимальная поддерживаемая версия Gradle — 7.5. Текущая версия 7.2.

Seyf 24.04.2023 17:18

Отвечает ли это на ваш вопрос? Android AGP 8 + Gradle 8 + Kotlin 1.8 вызывает ошибку в Kapt

Bink 18.05.2023 19:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
3
1 410
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

  1. В Android Studio перейдите к Settings -> Build, Execution, Deployment -> Build Tools -> Gradle
  2. Gradle JDK - убедитесь, что вы выбрали Java 11
  3. Если это не помогло, не меняйте настройку, а попробуйте «Invalidate Caches...» с возможностью перезапуска Android Studio и посмотрите, поможет ли это.

Также я бы предложил понизить версию AGP до версии 7.4. Я знаю, что это не включает все функции и исправления, но, как вы сказали, сейчас мало информации о том, что мы можем сделать. С другой стороны, автор Butterknife утверждает, что он справится с «критическими исправлениями ошибок для интеграции с AGP»:

Также убедитесь, что вы настроили файл build.gradle для использования Java 11:

compileOptions {
    sourceCompatibility = "11"
    targetCompatibility = "11"
}

Прежде всего спасибо за ваш ответ. Gradle JDK: 11, я в этом уверен. Для AGP: Вчера я увидел, что на официальном сайте написано, что нам нужно использовать Embedded JDK, и я попробовал, но это не сработало. Как вы сказали, я перешел на предыдущую версию как плагин: 7.4.2, библиотека: 7.5.1, но решения нет. Также есть эта ошибка: Причина: org.gradle.api.InvalidUserDataException: невозможно добавить конфигурацию с именем «androidJdkImage», поскольку конфигурация с таким именем уже существует.

Seyf 18.04.2023 16:48

ayrıca şöyle bir hata da alıyorum: Причина: ошибка проверки доступа к суперклассу: класс oilknife.compiler.ButterKnifeProcessor$RScanner (в безымянном модуле @0xac520b) не может получить доступ к классу com.sun.tools.javac.tree.TreeScanner (в модуле jdk.compiler) потому что модуль jdk.compiler не экспортирует com.sun.tools.javac.tree в безымянный модуль @0xac520b

Seyf 18.04.2023 17:09
Ответ принят как подходящий

Я решил проблему, вернувшись к старой версии следующим образом. Прежде всего, я скачал и установил версию Electric Eel. (Официальный сайт архива для загрузки старых версий: НАЖМИТЕ)

Затем я изменил содержимое gradle-wrapper.properties на:

distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

Затем я установил Gradle JDK с помощью шагов «Файл > Сборка, выполнение, развертывание > Gradle» следующим образом: jbr-11 (Jetbrains Runtime версии 11.0.5...)

Затем я выполнил следующие шаги: «Файл > Структура проекта» И Версия плагина Android Gradle: 7.4.2 Версия Gradle: 8.0.1

По крайней мере, сейчас я могу скомпилировать и запустить свой проект. Спасибо всем, кто пытался помочь.

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