Android Studio 3.0 - 找不到方法“com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Lja

Posted

技术标签:

【中文标题】Android Studio 3.0 - 找不到方法“com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava/util/List”【英文标题】:Android Studio 3.0 - Unable to find method 'com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava/util/List' 【发布时间】:2017-10-17 23:20:53 【问题描述】:

尝试使用 android Studio 3.0 Canary 1 启动新的 Kotlin 项目会显示此错误。完整跟踪:

错误:找不到方法 'com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Ljava/util/List;'。 此意外错误的可能原因包括:

Gradle 的 依赖项缓存可能已损坏(这有时会在网络连接后发生 连接超时。)重新下载依赖项 和同步项目(需要网络) Gradle 的状态 构建过程(守护进程)可能已损坏。停止所有 Gradle 守护进程可能 解决这个问题。停止 Gradle 构建 进程(需要重新启动) 您的项目可能正在使用 与其他插件不兼容的第三方插件 请求的项目或 Gradle 版本 项目。 在 Gradle 进程损坏的情况下,您可以 还可以尝试关闭 IDE,然后终止所有 Java 进程。

我已经尝试了前两个选项,第三方插件保持默认。

gradle-wrapper.properties

#Thu May 18 08:36:52 BST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip

build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript 
    ext.kotlin_version = '1.1.2-3'
    repositories 
        maven  url 'https://maven.google.com' 
        jcenter()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.0.0-alpha1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    


allprojects 
    repositories 
        jcenter()
        maven  url 'https://maven.google.com' 
        mavenCentral()
    


task clean(type: Delete) 
    delete rootProject.buildDir

我自己没有触及任何这些值,它们被保留为默认值。创建非Kotlin新项目没有这个问题。

【问题讨论】:

com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'的可能重复 【参考方案1】:

在我的 build.gradle 变化中

ext.kotlin_version = '1.1.2-3'

ext.kotlin_version = '1.1.2-4'

解决了这个问题。

您可以找到最新版本here。

【讨论】:

在这里解决了!但是插件是1.1.2-3的版本,不是1.1.2-4,我能做什么? @PedroPauloAmorim 我不确定这是否是 正确 答案,但是当我进入设置 > 插件并卸载 Kotlin 插件并重新启动时,它以 1.1 启动.2-4 安装。很奇怪,但可能是朝着正确方向迈出的一步。 是的,只需删除插件并瞧 我可以确认这适用于 android studio 3.0 canary 3,赞成 奇怪,我刚下载 Android Studio 3 的时候就出现了这种情况。幸运的是我最终在这里找到了解决方案【参考方案2】:

它对我有用

使用8.4.0版本

 classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'  

【讨论】:

【参考方案3】:

对于 Java

删除

classpath 'me.tatarka:gradle-retrolambda:3.7.0'

butterknifeversion 降级为8.4.0

classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'

别忘了删除

apply plugin: 'me.tatarka.retrolambda'

来自应用级构建 gradle。

【讨论】:

【参考方案4】:

这是 Android Studio Preview 3.0 中的known issue:

如果您看到此错误,可能是您的 Kotlin 插件的预先存在版本与 Android Studio 3.0 中的新 Android Plugin for Gradle 不兼容。解决方案是删除旧的 Kotlin 插件。

打开您的项目级build.gradle 文件并找到ext.kotlin_version。它应该是 1.1.2-4(或更高)。如果它显示的是旧版本,则需要删除旧的 Kotlin 插件,以免妨碍 Android Studio 3.0 中包含的版本。

在 Windows 上,它应该位于

C:\Users\user_name\AndroidStudio_version\config\plugins\Kotlin\

在 Mac 上,查看

~/Library/Application\ Support/AndroidStudio_version/Kotlin/

【讨论】:

【参考方案5】:

在我的情况下,问题是因为我们应用了 butterknife-gradle-plugin。升级到 8.8.1 并不能解决问题,但删除它确实可以。

build.gradle 属于应用程序,所以我什至不知道我们为什么要使用该插件(我是该项目的新手)

【讨论】:

【参考方案6】:

将您的 kotlin 版本更新到最新版本:

ext.kotlin_version = '1.1.2-4' //currently it's the latest version

那么您可能会遇到更多错误,因此在再次同步之前,请确保您的 buildToolsVersion 为“26.0.2”或更高版本。

【讨论】:

以上是关于Android Studio 3.0 - 找不到方法“com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Lja的主要内容,如果未能解决你的问题,请参考以下文章

Android-Android Studio 3.0找不到Android Device Monitor

Android Studio 3.0 - 找不到方法“com.android.build.gradle.internal.variant.BaseVariantData.getOutputs()Lja

在 Android Studio 的插件中找不到 Android Drawable Importer

找不到 com.android.tools.lint:lint-gradle Android Studio 3

在Android Studio 3.0中构建PIE和非PIE可执行文件

Android studio上找不到setting?