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

Bis*_*uit 88 android android-gradle-plugin

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

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

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

ian*_*ake 114

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

您希望为现有问题加注星标,以要求 Safe Args 插件使用新的替代 API。

  • 如果你使用的是北极狐,你仍然注定失败:| (23认同)
  • 更新:根据[此评论](https://issuetracker.google.com/issues/159542337#comment37),它已在 Android Studio 4.2 Beta 2 中修复。 (9认同)
  • 2.4.0-alpha02 修复了这个问题,也适用于北极狐(最新版本:alpha06) (2认同)

Spi*_*oid 9

更改为androidx.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"
Run Code Online (Sandbox Code Playgroud)

在 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"
Run Code Online (Sandbox Code Playgroud)


小智 8

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

更新前我的依赖

检查依赖项

我将依赖项谷歌服务更新为 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
}
Run Code Online (Sandbox Code Playgroud)

更新后

现在它工作正常。


san*_*adi 6

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

所以我将 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"
Run Code Online (Sandbox Code Playgroud)

并在应用程序模块build.gradle 中:

   implementation "androidx.navigation:navigation-fragment:$nav_version"
    implementation "androidx.navigation:navigation-ui:$nav_version"
    androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"
Run Code Online (Sandbox Code Playgroud)


小智 5

等4.2.0稳定后这个问题就会解决。

从现有问题来看:

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 发布,请更新到最新版本。