ChatGPT解决这个技术问题 Extra ChatGPT

API 'BaseVariant.getApplicationIdTextResource' 已过时,已替换为 'VariantProperties.applicationId'

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

API 'BaseVariant.getApplicationIdTextResource' 已过时,已替换为 'VariantProperties.applicationId'

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

发生在我身上,但发生在“RecyclerView”

i
ianhanniballake

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

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


更新:根据 this comment,它已在 Android Studio 4.2 Beta 2 中修复。
如果您使用的是北极狐,那么您仍然注定要失败:|
2.4.0-alpha02 修复了这个问题,也适用于北极狐(最新:alpha06)
正如@norbDEV 提到的那样,最新的 alpha 2.4.x-alphaXX 似乎与北极狐一起修复。
谷歌一年多来解决这个问题
S
Spirit of the Void

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"

这是最好的答案,因为它是最新的。应该更靠近顶部。正确答案应该是这个和当前正确答案的组合。
R
Riaz Mahmud

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

My Dependencies before update

检查依赖项

我将依赖项谷歌服务更新为 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.3.4 带有其他问题,例如 github.com/google/play-services-plugins/issues/163
我升级到了最新版本的 google-services
S
Sana Ebadi

这个错误是针对我在 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,它只是没有构建......谢谢!
这也对我有用。 2.3.1 -> 2.4.2
E
Erdem İnanç

当 4.2.0 稳定时,它将被解决。

From the existing issue:

Android Gradle 插件在 4.1.0 版中弃用了 BaseVariant 类的 getApplicationIdTextResource() API(请参阅错误)。替换 API (onVariantProperties) 对特性库不能正常工作,因此为了避免弃用警告,使用了反射。这只是一个短期的解决方案,当 AGP 4.2.0 稳定时,我们应该更新到该版本并立即删除反射

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


更新了 4.2.0 警告修复
I
Inoy

对我来说,这是因为 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) 中的版本不同”

一旦我做到了,它甚至开始再次编译。


H
Hamidreza Shadabkia

这个错误发生在我将 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"

M
Mopto

就我而言,我使用的是 2.3.1 版本的导航片段。我刚刚将它更新到 2.4.2,它对我有帮助


P
Pratik Butani

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

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


G
Gajendra Pandeya

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


N
Nelson Wright

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

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


升级到 4.1.1 并没有为我解决问题。
@ShadeToD 我不再将其视为构建错误,只是作为警告,如跟踪器中现有问题中所述。您仍然将其视为错误吗?
升级到 4.2.0 确实修复了它。
O
Otávio Augusto

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

升级前的依赖项

检查依赖项

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

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

}

J
J. almadhaji

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