Не удалось разрешить зависимость. Нет подходящего варианта

Я получаю ошибки сборки в проекте Android, вызванные следующей зависимостью:
implementation "com.algolia:instantsearch-android:2.5.1"
Это помогает перейти на 2.8.0, но я бы предпочел этого не делать, поскольку для этого требуется minSdk 21.


Плагин Gradle 6.5Android Gradle: 4.0.2
Kotlin 1.3.72

      Could not determine the dependencies of task ':app:compileReleaseJavaWithJavac'.
> Could not resolve all task dependencies for configuration ':app:releaseCompileClasspath'.
   > Could not resolve com.algolia:algoliasearch-client-kotlin-common:1.4.0.
     Required by:
         project :app > com.algolia:instantsearch-android:2.5.1
      > No matching variant of com.algolia:algoliasearch-client-kotlin-common:1.4.0 was found. The consumer was configured to find an API of a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'release', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm' but:
          - Variant 'metadata-api' capability com.algolia:algoliasearch-client-kotlin-common:1.4.0:
              - Incompatible because this component declares a usage of 'kotlin-api' of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'common' and the consumer needed an API of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm'
              - Other compatible attribute:
                  - Doesn't say anything about com.android.build.api.attributes.BuildTypeAttr (required 'release')

1 ответ

У меня была несколько похожая ситуация, но мой случай немного отличался от вашего. Я объясню разницу между моей ситуацией и вашей, а также то, что я сделал, чтобы исправить ситуацию. Это может быть подсказкой к вашей проблеме, но я оставлю это вам, чтобы посмотреть, применимо ли это или полезно.

В моем случае ошибка о несовместимости говорила о том, что у потребителя был атрибут «org.jetbrains.kotlin.platform.type» со значением «androidJvm» и что он обнаружил, что моя зависимость имеет атрибут «org.jetbrains.kotlin.platform». .type» со значением «jvm». Обратите внимание, что у меня нет точного текста, и в сообщении говорилось о других атрибутах и ​​компонентах. Но когда я проанализировал сообщение, очевидная разница заключалась в том, что «androidJvm» и «jvm».

Что я сделал неправильно, так это то, что я пытался добавить зависимость библиотеки Android к библиотеке Java, и, конечно же, это не разрешено. Я применил плагин «java-library» к зависимости вместо применения «com.android.plugin» к этой библиотеке. Я исправил это и проблему, когда ушел.

В вашем случае похоже, что у вас есть разница между «общим» и «androidJvm». К сожалению, я не знаю, на что ссылается тип платформы «общий». Вероятно, это связано с типом плагина, который вы применили. Надеюсь, это поможет вам!

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