Я решил попробовать команду ./gradlew build --stacktrace
и увидел, что класс ICustomTabsCallback
используется библиотекой androidx.browser:browser:1.0.0-rc01
.
> Transform browser.aar (androidx.browser:browser:1.0.0-rc01) with DexingTransform
AGPBI: {"kind":"error","text":"Class descriptor \u0027Landroid/support/customtabs/ICustomTabsCallback/;\u0027 cannot be represented in dex format.","sources":[{}],"tool":"D8"}
> Task :app:mergeExtDexDebug FAILED
AGPBI: {"kind":"error","text":"Class descriptor \u0027Landroid/support/customtabs/ICustomTabsCallback/;\u0027 cannot be represented in dex format.","sources":[{}],"tool":"D8"}
FAILURE: Build failed with an exception.
Затем я использовал команду ./gradlew app:dependencies
, чтобы увидеть, есть ли конфликт взависимости и я нашел ошибку.
+--- androidx.appcompat:appcompat:1.0.0-rc01 -> 1.0.0 (*)
| \--- androidx.browser:browser:1.0.0-rc01
| +--- androidx.core:core:1.0.0-rc01 -> 1.0.0 (*)
| +--- androidx.annotation:annotation:1.0.0-rc01 -> 1.0.0
| +--- androidx.interpolator:interpolator:1.0.0-rc01 -> 1.0.0 (*)
| +--- androidx.collection:collection:1.0.0-rc01 -> 1.0.0 (*)
| \--- androidx.legacy:legacy-support-core-ui:1.0.0-rc01 -> 1.0.0 (*)
В приведенном выше фрагменте показаны некоторые зависимости для конфигурации debugCompileClasspath
.Мы можем видеть, что androidx.appcompat:appcompat
содержит androidx.browser:browser
в качестве транзитивной зависимости.
androidx.appcompat:appcompat:1.0.0-rc01 -> 1.0.0
означает, что вместо версии 1.0.0-rc01
будет использоваться версия 1.0.0
, но это не относится к androidx.browser:browser
,вместо версии 1.0.0
будет использоваться версия 1.0.0-rc01
. Чтобы устранить эту ошибку, я просто удалил транзитивные зависимости, добавив приведенный ниже блок кода в build.gradle
configurations {
compile.exclude group: 'androidx.browser', module: 'browser'
}
* моего приложения.1027 * Итак, build.gradle моего приложения будет выглядеть следующим образом
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'
android {
//....
}
configurations {
compile.exclude group: 'androidx.browser', module: 'browser'
}
dependencies {
// ....
}
После этого я просто синхронизировал, очистил и перестроил свой проект.
ОБНОВЛЕНИЕ
Если ответ не решит вашу проблему, Другой вариант - использовать стабильную версию android studio (3.2.1 согласно этой статье) и gradle3.2.1 classpath 'com.android.tools.build:gradle:3.2.1'