Jetifier не конвертирует зависимости поддержки
Я локально клонировал ExoPlayer и добавил модули в свой существующий проект, используя мой settings.gradle
как описано в документации:
gradle.ext.exoplayerRoot = 'path/to/exoplayer'
gradle.ext.exoplayerModulePrefix = 'exoplayer-'
apply from: new File(gradle.ext.exoplayerRoot, 'core_settings.gradle')
Всякий раз, когда я пытаюсь собрать проект, я получаю следующую ошибку сборки:
ошибка: пакет android.support.annotation не существует
Это случается для всех @NonNull
а также @Nullable
аннотации в модулях ExoPlayer.
Я создал новый проект в Android Studio 3.2.1, добавил поддержку AndroidX в мой gradle.properties
файл и обновил мой build.gradle
подать соответственно.
build.gradle
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 26
targetSdkVersion 28
versionCode 1
versionName "1.0"
}
dataBinding {
enabled = true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//ExoPlayer
implementation project(':exoplayer-library-core')
}
gradle.properties
org.gradle.jvmargs=-Xmx1536m
android.databinding.enableV2=true
android.useAndroidX=true
android.enableJetifier=true
Если я правильно понимаю, Jetifier должен иметь возможность разрешать и преобразовывать зависимости поддержки в зависимости AndroidX, но, похоже, это не относится к этим локальным модулям.
1 ответ
Мне удалось решить проблему, указав gradle.properties
файл для каждого локального модуля exoplayer в моем проекте, который используется в приложении. Я до сих пор не знаю, в чем причина проблемы, но, похоже, решение проблемы перехода с Jetifier на AndroidX для локальных модулей не помогло.
# Local module Gradle settings.
android.useAndroidX=false
# Jetifier will convert support libraries of all your dependencies to AndroidX automatically,
# if you don't set it true then your project will have both support
android.enableJetifier=false