构建 gradle 时,我收到以下消息:
API 'BaseVariant.getApplicationIdTextResource' 已过时,已替换为 'VariantProperties.applicationId'
我正在使用 Android Studio 4.1 Canary 10
和 gradle:4.1.0-alpha10
Navigation Safe Args plugin 似乎使用了 getApplicationIdTextResource()
,因此错误消息很可能是由您使用该插件引起的。
您希望为 existing issue 加星标以要求 Safe Args 插件使用新的替换 API。
如 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"
几天我看到同样的问题。然后我去-> 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
}
现在它工作正常。
google-services
。
这个错误是针对我在 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"
2.3.1
-> 2.4.2
当 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 发布后,更新到最新版本。
对我来说,这是因为 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) 中的版本不同”
一旦我做到了,它甚至开始再次编译。
这个错误发生在我将 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,它对我有帮助
Android Studio 4.1 提供以下信息,它将在 Android Gradle 插件的 5.0 版中删除。
API 'BaseVariant.getApplicationIdTextResource' 已过时,已替换为 'VariantProperties.applicationId'。它将在 Android Gradle 插件的 5.0 版中删除。有关详细信息,请参阅待定。要确定调用 BaseVariant.getApplicationIdTextResource 的内容,请在命令行上使用 -Pandroid.debug.obsoleteApi=true 以显示更多信息。
所以,我所做的是我已经升级了所有 gradle 插件以及依赖版本,然后运行,它对我有用
正如@ianhanniballake 所指出的,这似乎是由 Navigation Safe Args 插件引起的,请参阅 existing issue,也从他的回答中引用。该问题在 11 月 9 日被标记为已修复。
在修复构建错误方面,将 Android Studio 从 4.1.0
升级到 4.1.1
为我修复了它。
我有同样的问题,它是这样解决的:所以我去 -> build.gradle 文件
升级前的依赖项
检查依赖项
我将 Google 服务依赖项更新到最新版本
dependencies {
classpath 'com.android.tools.build:gradle:(latest version)'
classpath 'com.google.gms:google-services:(latest version)'
}
从项目中删除 .idea 和 .gradle 文件..它对我有用
不定期副业成功案例分享