【问题标题】:API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'API 'BaseVariant.getApplicationIdTextResource' 已过时,已替换为 'VariantProperties.applicationId'
【发布时间】:2020-06-02 16:09:50
【问题描述】:

在构建 gradle 时,我收到以下消息:

API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'

我正在使用Android Studio 4.1 Canary 10gradle:4.1.0-alpha10

【问题讨论】:

  • 发生在我身上,但发生在 'RecyclerView' 上

标签: android android-gradle-plugin


【解决方案1】:

Navigation Safe Args plugin 似乎使用了getApplicationIdTextResource(),因此错误消息很可能是您使用该插件引起的。

您需要为 existing issue 加注星标以要求 Safe Args 插件使用新的替换 API。

【讨论】:

  • 更新:根据this comment,它已在 Android Studio 4.2 Beta 2 中修复。
  • 如果你使用北极狐,你还是注定要失败的:|
  • 2.4.0-alpha02 解决了这个问题,也适用于北极狐(最新:alpha06)
  • 最新的 alpha 2.4.x-alphaXX 似乎与@norbDEV 提到的北极狐一起修复。
  • 谷歌一年多来修复这个问题
【解决方案2】:

here 所述更改为 androidx.navigation:navigation-*:2.4.0-alpha02 允许在北极狐下构建我的应用程序而不会收到 getApplicationIdTestResource 警告

来自应用程序 build.gradle 文件:

def nav_version = "2.4.0-alpha02"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

并且在 build.gradle 文件中:

def nav_version = "2.4.0-alpha02"
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"
androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

【讨论】:

  • 这是最好的答案,因为它是最新的。应该更靠近顶部。正确答案应该是这个和当前正确答案的组合。
【解决方案3】:

几天我看到同样的问题。然后我去-> build.gradle 文件

My Dependencies before update

检查依赖项

我将依赖项 google services 更新到 4.3.4

dependencies {
    classpath 'com.android.tools.build:gradle:4.1.1'
    classpath 'com.google.gms:google-services:4.3.4'


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

After update

现在它工作正常。

【讨论】:

【解决方案4】:

这个错误是针对我在 Android Studio Cannery 13 中的NavigationComponent

所以我把 nav_version 改成了这个,我的问题就解决了。

 ext {
    ***************    nav_version = "2.4.0-alpha10" ************
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.1.0-alpha13'
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

应用模块 build.gradle:

   implementation "androidx.navigation:navigation-fragment:$nav_version"
    implementation "androidx.navigation:navigation-ui:$nav_version"
    androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"

【讨论】:

  • 非常感谢,我不敢相信构建又开始工作了!尝试了很多解决方案,但都没有奏效。我只是想将我的 android 项目从 java 8 更新到 java 11,它只是没有构建......谢谢!
【解决方案5】:

等4.2.0稳定后解决。

From the existing issue:

Android Gradle 插件已弃用 getApplicationIdTextResource() 版本 4.1.0 中类 BaseVariant 的 API(参见 bug)。这 替换 API (onVariantProperties) 无法正常工作 功能库,所以为了避免弃用警告,反射是 用过的。这只是一个短期的解决方案,当 AGP 4.2.0 稳定时 我们应该更新到那个版本并立即删除反射

因此,如果您需要 Safe Args 并且不需要 Gradle 的最新功能,请将 Android Gradle Plugin 版本中的 Gradle 版本保持为 3.6.4。稳定版 4.2.0 发布后,更新到最新版本。

【讨论】:

    【解决方案6】:

    对我来说,这是因为 IDE Kotlin 插件和 project_name/build.gradle 文件之间的 Kotlin 版本不同

    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72"

    “用于使用 Gradle (1.3.72) 构建的 Kotlin 版本与捆绑到 IDE 插件 (1.4.31) 中的版本不同”

    一旦我成功了,它就又开始编译了。

    【讨论】:

      【解决方案7】:

      此错误发生在我将 kotlin 版本更新到 1.7 之后。 这是用于 Android Studio 中的 NavigationComponent

      所以我把 nav_version 改成了这个,我的问题就解决了:“2.4.0-beta02”

      // Navigation Component
      implementation "androidx.navigation:navigation-fragment-ktx:2.4.0-beta02"
      implementation "androidx.navigation:navigation-ui-ktx:2.4.0-beta02"
      

      【讨论】:

        【解决方案8】:

        Android Studio 4.1 提供以下信息,它将在 Android Gradle 插件 5.0 版中删除。

        API“BaseVariant.getApplicationIdTextResource”已过时,已被“VariantProperties.applicationId”取代。 它将在 Android Gradle 插件的 5.0 版中删除。 有关详细信息,请参阅待定。 要确定调用 BaseVariant.getApplicationIdTextResource 的内容,请在命令行上使用 -Pandroid.debug.obsoleteApi=true 以显示更多信息。

        【讨论】:

          【解决方案9】:

          所以,我所做的是我已经升级了所有 gradle 插件以及依赖版本,然后运行,它对我有用

          【讨论】:

            【解决方案10】:

            正如@ianhanniballake 所指出的,这似乎是由 Navigation Safe Args 插件引起的,请参阅existing issue,也从他的回答中引用。该问题已于 11 月 9 日标记为已修复。

            在修复构建错误方面,将 Android Studio 从 4.1.0 升级到 4.1.1 为我修复了它。

            【讨论】:

            • 升级到 4.1.1 并没有解决我的问题。
            • @ShadeToD 我不再将其视为构建错误,而是将其视为警告,如跟踪器中现有问题中所述。您仍然认为这是一个错误吗?
            【解决方案11】:

            我遇到了同样的问题,它是这样解决的: 所以我去 -> build.gradle 文件

            升级前的依赖

            检查依赖关系

            我将 Google 服务依赖项更新到最新版本

            dependencies {
             classpath 'com.android.tools.build:gradle:(latest version)'
             classpath 'com.google.gms:google-services:(latest version)'
            
            }
            

            【讨论】:

              【解决方案12】:

              从项目中删除 .idea 和 .gradle 文件 .. 它对我有用

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2019-09-28
                • 2019-12-11
                • 1970-01-01
                • 2019-02-23
                • 2019-11-12
                • 2019-11-13
                • 2019-09-02
                • 2019-11-23
                相关资源
                最近更新 更多