API‘ BaseVariant.getApplicationIdTextResource’已经过时,已经被‘ VariantProperties.applicationId’取代

在建造梯级时,我得到了这样的信息:

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

我用的是 Android Studio 4.1 Canary 10gradle:4.1.0-alpha10

58523 次浏览

看起来 Navigation Safe Args plugin使用的是 getApplicationIdTextResource(),所以最有可能的错误消息是由您使用该插件引起的。

您可能希望使用 存在的问题来要求 Safe Args 插件使用新的替换 API。

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

API‘ BaseVariant.getApplicationIdTextResource’已经过时,已经被‘ VariantProperties.applicationId’替换。 它将在 Android Gradle 插件的5.0版本中删除。 有关更多信息,请参见待定。 要确定是什么在调用 BaseVariant.getApplicationIdTextResource,请在命令行上使用-Pandroid.degu.obsoteApi = true 来显示更多信息。

So, What i have done is that I have upgraded all the gradle plugins as well as dependecies versions and then run, It worked for me

正如@ianhanniballake 指出的那样,它很可能是由导航安全 Args 插件引起的,参见 存在的问题,也参考了他的答案。该批债券已于11月9日确定发行。

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

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

更新前的依赖项

检查 依赖关系

我将谷歌服务的依赖关系更新为4.3

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
}

更新后

Now its working fine.

当4.2.0稳定时,这个问题就会得到解决。

From the existing issue:

Android Gradle Plugin 反对 getApplicationIdTextResource () 版本4.1.0中 BaseVariant 类上的 API (参见 bug) 替换 API (onVariantProperties)不能正常工作 feature libraries, so to avoid the deprecation warning, reflection was 这只是一个短期的解决方案,当 AGP4.2.0稳定时 我们应该更新到那个版本,并立即删除反射

因此,如果你需要安全的 Args,并且不需要 Gradle 的最新功能,那么在安卓的 Gradle 插件版本中将 Gradle 版本保持在3.6。一旦稳定版4.2.0发布,更新到最新版本。

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

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

Kotlin 版本用于构建 Gradle (1.3.72) ,与绑定到 IDE 插件(1.4.31)中的版本不同

一旦我使它甚至开始编译了。

按照 给你的描述,切换到 androidx.導航-* : 2.4.0-alpha02允许在北极狐下构建我的应用程序,而不需要获得 getApplicationIdTestResource 警告

From the application build.gradle file:

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"

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

This error was for NavigationComponent for me in Android Studio Cannery 13.

所以我把导航版本改成了这个,我的问题就解决了。

 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"

应用程序模块中:

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

我也遇到了同样的问题,就这样解决了: So I go to -> build.gradle file

升级前的依赖项

检查依赖关系

我将谷歌服务的依赖关系更新到最新版本

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


}

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

在我的例子中,我使用的是2.3.1版本的导航片段。 我刚刚把它更新到2.4.2,这对我很有帮助