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
Другие вопросы по тегам