4

我在本地克隆了ExoPlayersettings.gradle ,并按照文档中的描述使用 my 将模块添加到我现有的项目中:

gradle.ext.exoplayerRoot = 'path/to/exoplayer'
gradle.ext.exoplayerModulePrefix = 'exoplayer-'
apply from: new File(gradle.ext.exoplayerRoot, 'core_settings.gradle')

每当我尝试构建项目时,都会收到以下构建错误:

错误:包 android.support.annotation 不存在

这些发生在ExoPlayer 模块@NonNull中的所有注释和@Nullable注释中。

我在 Android Studio 3.2.1 中创建了一个新项目,在我的文件中添加了 AndroidX 支持gradle.properties并相应地更新了我的build.gradle文件。

构建.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 依赖项,但这些本地模块似乎并非如此。

4

1 回答 1

2

我设法通过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
于 2018-12-13T12:33:17.293 回答