Jetifier не конвертирует зависимости поддержки - PullRequest
0 голосов
/ 12 декабря 2018

Я локально клонировал 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 Ответ

0 голосов
/ 13 декабря 2018

Мне удалось решить проблему, указав файл 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
...