我在本地克隆了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不存在
ExoPlayer模块中的所有@NonNull
和@Nullable
注释都会发生这种情况。
我在Android Studio 3.2.1中创建了一个新项目,在我的gradle.properties
文件中添加了AndroidX支持,并相应地更新了我的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依赖关系,但是这些本地模块似乎并非如此。
答案 0 :(得分:1)
我设法通过为应用程序中使用的项目中的每个本地exoplayer模块指定一个gradle.properties
文件来解决此问题。我仍然不知道是什么原因引起的,但是阻止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