【问题标题】:Jetifier does not convert support dependenciesJetifier 不转换支持依赖项
【发布时间】:2019-05-13 13:43:28
【问题描述】:

我在本地克隆了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 依赖,但这些本地模块似乎并非如此。

【问题讨论】:

    标签: android exoplayer android-jetifier


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2020-07-25
      • 1970-01-01
      • 2012-01-06
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      相关资源
      最近更新 更多