Android Studio - 无法通知项目评估侦听器错误

时间:2017-05-21 06:57:29

标签: android android-studio build.gradle

以下是Android Studio中的build.gradle代码

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.sg.blahblah"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }

    lintOptions {
        checkReleaseBuilds true
        abortOnError false
        xmlReport true
        htmlReport true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            lintOptions {
                disable 'MissingTranslation'
            }
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.google.android.apps.dashclock:dashclock-api:+'
    compile 'com.roughike:bottom-bar:1.4.0.1'
    compile 'com.diogobernardino:williamchart:2.2'
}

我收到以下错误: 错误:配置项目':app'时出现问题。

  

无法通知项目评估监听器。   com.android.build.gradle.tasks.factory.AndroidJavaCompile.setDependencyCacheDir(Ljava / IO /文件;)V

有人可以帮忙吗?

以下是Instant Run截图 enter image description here

31 个答案:

答案 0 :(得分:52)

我也遇到了这个问题。我通过项目

中的更改build.gradle来修复它

更改

dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
}

我也改变了gradle-wrapper.properties中的distributionUrl(全局版)

distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip

并获得成功.FYI。

答案 1 :(得分:34)

我在通过禁用Instant Run

解决一周之前遇到同样的错误
  

文件→设置→构建,执行,部署→即时运行和   取消选中启用即时运行。

希望它有效。

答案 2 :(得分:16)

更新到'com.android.tools.build:gradle:3.0.0'

时,我也遇到了此错误

要修复它,我必须将google() repo添加到buildscript和模块存储库。这里的documentation仅提到添加到buildscript。

项目级build.gradle

buildscript {
    repositories {
        ...
        // You need to add the following repository to download the
        // new plugin.
        google()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }
}

App-level build.gradle

repositories {
    ...
    // Documentation doesn't specify this, but it must be added here
    google()
}

<强> gradle-wrapper.properties

...
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

答案 3 :(得分:10)

您需要检查您的gradle版本。 gradle -v

然后您应该知道您的gradle版本和您的gradle插件版本兼容。

示例:

gradle 4.6与gradle插件2.2不兼容。

所以需要将 com.android.tools.build:gradle 版本更新为 2.3.3

然后你需要检查 gradle / wrapper / gradle-wrapper.properties distributionUrl gradle版本

google Android Plugin for Gradle Release Notes

enter image description here

另一方面

使用较新的插件版本可能需要更新Android Studio

感谢@antek

答案 4 :(得分:7)

有类似的问题,问题是所包含库的版本不同。找出导致问题的原因,并使用stacktrace运行构建命令

./gradlew build --stacktrace

答案 5 :(得分:5)

在我的情况下,我遇到了wifi问题。确保您有有效的互联网连接

答案 6 :(得分:5)

这既不是问题的准确答案,也不是灵丹妙药。 但是,如果没有什么对您有用,例如无效缓存&amp;重启,检查构建依赖关系,禁用即时运行(我从不建议)等。

  1. 设置&gt;中添加命令行选项--stacktrace构建,执行,部署&gt;编译器
  2. 现在再次构建/组装gradle。您将获得有关原因的详细信息。例如就我而言:
  3.   

    引起:org.gradle.internal.resolve.ModuleVersionNotFoundException:   找不到com.squareup.okhttp3:logging-interceptor:3.9.1Net。

    我在模块级gradle文件中拼错了依赖项名称。希望有所帮助

答案 7 :(得分:4)

在我的情况下,我只通过使缓存无效来解决此错误。

档案&gt;无效缓存/重新启动

答案 8 :(得分:3)

问题可能是你使用的是Gradle版而不是3版。 转到gradle / wrapper / gradle-wrapper.properties并将最后一行更改为:

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

答案 9 :(得分:3)

对于那些在团队中工作的人:

我删除了一些更改,包括更新构建工具版本,但我没有在我的机器上下载新版本的构建工具。下载新版本为我解决了这个问题

答案 10 :(得分:2)

通常它取决于Instant run或Gradle,但我尝试了两种变体,没有任何帮助。然后我浏览了idea.log并看到了这个错误

Caused by: java.lang.RuntimeException: A conflict was found between the 
following modules:
 - com.android.support:support-core-utils:25.3.1
 - com.android.support:support-core-utils:27.0.1

我真的不知道为什么Gradle ConsoleEvent Log标签中没有显示此错误。然后我通过在android{}块的末尾添加一些代码来修复它。

configurations.all {
    resolutionStrategy {
        failOnVersionConflict()
        eachDependency { DependencyResolveDetails details ->
            if (details.requested.name == 'support-core-utils') {
                details.useVersion '25.3.1'//Or you can use 27.0.1 if it does not conflict with your other dependencies
            }
    }
}

答案 11 :(得分:2)

这很有趣,但对我来说有帮助:

 File -> Setting -> Gradle -> disable offline work

答案 12 :(得分:2)

就我而言,我已在与模块相关的gradle文件中更改了Kotlin插件的版本,但未在root gradle文件中进行了更改。

答案 13 :(得分:1)

我已经解决了此问题,方法是清理所有Gradle缓存,停止Gradle Daemon进程,并使用以下命令成功创建了新的构建。确保当前目录为android。

rm -rf ~/.gradle/caches && ./gradlew --stop && ./gradlew cleanBuildCache && ./gradlew bundleRelease

我正在使用React Native。因此,我在package.json中的脚本中添加了以下内容,

"build-android": "rm -rf ~/.gradle/caches && cd android && ./gradlew --stop && ./gradlew cleanBuildCache && ./gradlew bundleRelease && cd ..",

答案 14 :(得分:1)

对我来说,此问题是由于插件和gradle的组合不兼容引起的。

我将它们添加到代码中以使其正常工作:

主要build.gradle

dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }

主要gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

答案 15 :(得分:1)

使用新的Google支持gradle插件(com.google.gms.google-services)可能是由于com.google.android.gms.*模块的某些依赖版本问题引起的。

通过使用带有--stacktrace参数的build命令,您可能会看到根本原因。即:

./gradlew :app:dependencies --stacktrace

这可能会输出导致问题的原因:

  

原因:org.gradle.api.GradleException:   各种其他图书馆都在 [[15.0.2,15.0.2]请求存储库com.google.android.gms:play-services-measurement-base,   [16.0.0,16.0.0]],但解析为16.0.0 。禁用插件并检查   您的依赖树使用./gradlew:app:dependencies。               com.google.gms.googleservices.GoogleServicesPlugin $ 1 $ _afterResolve_closure1.doCall(GoogleServicesPlugin.groovy:328)               在org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)

答案 16 :(得分:1)

我遇到了这个问题,因为我在计算机上使用了 Charles代理,而且所有主机都启用了 SSL 。由于AS不信任我的代理,网络请求失败。 所以我必须为所有主机停用SSL 重启我的Android Studio

答案 17 :(得分:0)

我启用了“离线工作”  文件->设置->构建,部署,执行-> Gradle 终于为我解决了这个问题。

答案 18 :(得分:0)

设置 - &gt;构建,执行,部署 - &gt; Gradle - &gt;取消选择离线工作 然后同步项目,你很高兴。 enter image description here 如果不起作用,则文件&gt;无效的缓存/重新启动 - &gt;无效并重新启动。 enter image description here

答案 19 :(得分:0)

就我而言,我没有安装目标SDK平台。我记得这个错误很简单,提示您自动安装它。值得检查一下。

答案 20 :(得分:0)

第一步:文件→设置→构建,执行,部署→即时运行,然后取消选中启用即时运行。 第二步:按Invalidate / Restart。 完成...。享受。

答案 21 :(得分:0)

唯一帮助我的是使用系统gradle而不是Android Studio的内置功能:

设置 - &gt;构建,执行,部署 - &gt;摇篮

选择使用本地gradle分发。要查找路径,您可以which gradle支持which程序。它可能是/usr/bin/gradle

另请参阅Error:Could not initialize class com.android.sdklib.repositoryv2.AndroidSdkHandler了解其他可能原因。

答案 22 :(得分:0)

我遇到了类似的问题。

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Failed to notify project evaluation listener.
   > org.gradle.api.tasks.compile.CompileOptions.setBootClasspath(Ljava/lang/String;)V

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.0-milestone-1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 7s
Build step 'Invoke Gradle script' changed build result to FAILURE
Build step 'Invoke Gradle script' marked build as failure
Finished: FAILURE
  

关键是您需要找到一种解决此类问题的方法,而不是   解决这个问题。

根据上面的日志,最重要的信息是:

Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. Run with --scan to get full insights.

大多数Gradle的构建问题都将得到解决,因为当您使用特定的Gradle build命令时,可以获得更详细,有用的信息。

*clean project
./gradlew clean  

*build project
./gradlew build

*build for debug package
./gradlew assembleDebug or ./gradlew aD

*build for release package
./gradlew assembleRelease or ./gradlew aR

*build for release package and install
./gradlew installRelease or ./gradlew iR Release

*build for debug package and install
./gradlew installDebug or ./gradlew iD Debug

*uninstall release package
./gradlew uninstallRelease or ./gradlew uR

*uninstall debug package
./gradlew uninstallDebug or ./gradlew uD 

*all the above command + "--info" or "--debug" or "--scan" or "--stacktrace" can get more detail information.

然后我发现问题与Gradle的版本有关,当我将Gradle的版本从5.0更改为4.1时,就可以了。

答案 23 :(得分:0)

就我而言,我不得不-

文件->使用Gradle文件同步项目

Sync Project with Gradle Files

答案 24 :(得分:0)

就我而言,我必须将所有 Firebase库更新为最新版本。

答案 25 :(得分:0)

只需重启 Android Studio-通常情况下,一切都会恢复正常。 (实际上不需要使缓存无效+重新启动)。

答案 26 :(得分:0)

org.gradle.configureondemand=false

将此代码添加到您的 gradle.properties 文件中,它将很好地工作,但您可能会收到其他错误。

答案 27 :(得分:0)

对我来说,我必须专门停止gradlew并清除缓存,这解决了我的问题:

./gradlew --stop
// Delete all cache files in your project. With git: `git -xfd clean` 
// Delete global cache dir. On Mac it is located in `~/.gradle/caches

在这里找到: https://github.com/realm/realm-java/issues/5650#issuecomment-355011135

答案 28 :(得分:0)

我忽略了将 JDK13 Android Studio结合使用,因此我选择了以下设置,此问题已解决:

步骤1。(文件>其他设置>默认项目结构> SDK位置> JDK位置)

Embedded JDK 

第2步。(文件>项目结构>项目)

gradle plugin 3.6.3 

gradle 5.6.4 

答案 29 :(得分:0)

我有buildToolsVersion "27.0.1",将其升级为27.0.2解决了问题。

另外,我的Android支持代码版本为27.0.2,因此它们未与buildToolsVersion

对齐

答案 30 :(得分:-1)

只需更改gradle-wrapper.properties的分发URL

放置:https://services.gradle.org/distributions/gradle-4.10.1-all.zip