4

我有一个将 Google App Engine 与 Android 结合使用的项目。

升级到 Android Studio 3.4(gradle 5.1.1)后,出现以下“gradle project sync failed”错误。

它在之前使用 gradle 4.10.1 的 android studio 版本中运行良好。

欢迎任何指针。如果您需要我提供更多信息,请告诉我

Caused by: java.lang.NoSuchMethodError: org.gradle.api.tasks.SourceSetOutput.getClassesDir()Ljava/io/File;
at com.google.cloud.tools.gradle.endpoints.framework.server.EndpointsServerPlugin$2$1.execute(EndpointsServerPlugin.java:108)
at com.google.cloud.tools.gradle.endpoints.framework.server.EndpointsServerPlugin$2$1.execute(EndpointsServerPlugin.java:98)

以下是后端模块的 build.gradle 文件。
这是在我使用迁移指南 ( https://cloud.google.com/endpoints/docs/frameworks/java/migrating-android )迁移到 GAE V2 之后

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.2'
        classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.3.2'

    }
}

repositories {
    jcenter()
}

apply plugin: 'java'
apply plugin: 'war'

apply plugin: 'com.google.cloud.tools.appengine'
apply plugin: 'com.google.cloud.tools.endpoints-framework-server'

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

dependencies {

    // V2: Endpoints Framework v2 migration
    implementation 'com.google.endpoints:endpoints-framework:2.0.9'
    implementation 'javax.inject:javax.inject:1'
    implementation 'javax.servlet:servlet-api:2.5'

    implementation 'com.googlecode.objectify:objectify:5.1.9' 

}
4

2 回答 2

3

从:类路径“com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.2”更新为:类路径“com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.3”

在我的项目中修复了这个问题

于 2019-06-11T02:16:19.877 回答
0

为了让它再次工作,我不得不从 build.gradle (module:app) 中注释掉以下内容

//buildscript {
//    repositories {
//        jcenter()
//    }
//    dependencies {
//        // V2: Add the new Endpoints Framework plugin dependencies
//        classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.3'
//    }
//}

相反,将类路径添加到 build.gradle (项目)

buildscript {
    repositories {
        jcenter()
        google() 
    }
    dependencies {
        // V2: Include this dependency when using Endpoints Framework v2
        classpath 'com.google.guava:guava:24.1-jre'

        //**moved from the build.gradle in module:app** 
        classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.3'

///... <snips> the rest of the build.gradle file
于 2019-05-20T06:18:05.200 回答