升级到Android Studio Arctic Fox Beta 4后无法构建

5

今天刚刚注意到Arctic Fox发布了Beta 4的更新。由于之前使用beta版本没有问题,因此我决定将Beta 3升级为最新版。如往常一样,AGP也需要升级。新版Beta似乎工作正常,直到我尝试使用新版Gradle n AGP构建我的项目时出现了以下错误。

每次都会出现这个错误,而且我试过所有方法(包括消息中提供的建议步骤),除了退回到Arctic Fox Beta 3或其正常版本以外,都没有起作用。想知道是否有人知道原因以及是否有解决方案。

Unable to find method com.android.build.api.extension.VariantSelector com.android.build.api.extension.AndroidComponentsExtension.selector()
com.android.build.api.extension.VariantSelector com.android.build.api.extension.AndroidComponentsExtension.selector()

Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)

Re-download dependencies and sync project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.

Stop Gradle build processes (requires restart)
Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

1
我遇到了相同的问题,但是与com.android.build.api.extension.AndroidComponentsExtension$DefaultImpls有关。 - the_dani
3个回答

1

它还会影响 Firebase 性能插件。我猜测 Android Gradle 团队正在努力解决的问题也可能会修复该插件的相关问题。 - ubuntudroid
值得一提的是,我已经在这里报告了Firebase性能插件:https://github.com/google/dagger/issues/2700 - ubuntudroid
不,我没有使用 Hilt。 - Tamtomo Abdi Negoro

0

如上所述,您必须等待Android Gradle插件7.0.0-beta05版本 或者 您可以使用7.1.0 Alpha版本。

这对我有效

  1. 项目的build.gradle文件:
    dependencies {
        classpath("com.android.tools.build:gradle:7.1.0-alpha02")
        ...

使用最新的Hilt 2.37(如果需要,也可以使用Dagger):
    object LibsHilt {
      const val version = "2.37"
      private const val versionX = "1.0.0"
    
      const val hilt = "com.google.dagger:hilt-android:$version"
      const val compiler = "com.google.dagger:hilt-android-compiler:$version"
      const val viewModel = "androidx.hilt:hilt-lifecycle-viewmodel:$versionX"
      const val compilerX = "androidx.hilt:hilt-compiler:$versionX"
    
      object Dagger {
        const val version = "2.37"
        const val dagger = "com.google.dagger:dagger:$version"
        const val compiler = "com.google.dagger:dagger-compiler:$version"
      }
    
      object Test {
        const val testing = "com.google.dagger:hilt-android-testing:$version"
        const val compiler = "com.google.dagger:hilt-android-compiler:$version"
      }
    }

第三步: 文件 {PROJECT_ROOT}/gradle/wrapper/gradle-wrapper.properties
...
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
...

-1

对我来说,最简单和最快的解决方案是下载最新的Canary版本以及其最新的依赖项,并使用它来编译我的项目。

如果前进更好,那我就不应该后退 :D


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接