Ошибка объяснения: плагин ‘java’ был применен, но он несовместим с плагинами Android

#java #android #kotlin #plugins

#java #Android #kotlin #Плагины

Вопрос:

Я сохраню это простым. Я использую как kotlin, так и java в своем проекте Android. При необходимости я могу предоставить свои файлы gradle.

Мне нужны следующие плагины java в моем проекте: id ‘java-library’ id «org.web3j». Они работают на более старой версии Android gradle ('com.android.tools.build:gradle:3.6.3' ; distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-all.zip) , но не на новейшей, ("com.android.tools.build:gradle:4.1.1" ; distributionUrl=https://services.gradle.org/distributions/gradle-6.5-all.zip) из которой мне нужны другие функции. Когда я пытаюсь их добавить, я получаю следующую ошибку.

 Error:The 'java' plugin has been applied, but it is not compatible with the Android plugins
 

В старой версии gradle есть плагины:

 apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android-extensions'
 

В новой версии gradle есть плагины:

 plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id  'com.google.gms.google-services'
   // id "org.web3j" version "4.8.1"
  // id 'java-library'
}
 

Я нашел других с той же проблемой, но без реального ответа. Один из способов, который я нашел здесь, — настроить их для подпроекта или чего-то еще, но я не совсем понимаю, как. Кто-нибудь может помочь? В идеале скажите мне, что и куда поместить, в какой файл gradle и как это работает (насколько я понимаю, у меня всего 1 проект, а не много в моем приложении для Android).
Это код, который я нашел:

 configure(allprojects) {
  println "applying java plugin to $project"
  apply plugin: 'java-library'

  //...
}
 

Ответ №1:

Вы не можете добавить org.web3j в качестве плагина, поскольку он содержит плагины ‘java’, которые несовместимы с плагинами ‘java’ Android. Итак, вы можете либо добавить плагин ‘com.android.application’, либо ‘org.web3j’. Добавьте web3j в качестве реализации зависимостей (‘org.web3j: core: 4.8.7’). Он будет работать нормально.