java - 找不到 Gradle DSL 方法 : 'appengine()'

标签 java android google-app-engine android-studio dependencies

我的项目由一个 Android 应用程序和一个 Appengine 后端组成,我从 eclipse 转移到 android studio 并遵循一些在线示例以及从 Android Studio 生成一个 appengine 模块我想到了这个。

android应用程序的Gradle文件

apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    //compile project(':appcompat_v7_2')
    compile 'com.android.support:support-v4:21.0.3'
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile project(path: ':AgriExpenseTT-AppEngine', configuration: 'android-endpoints') //line that supposedly links the AppengineProject
}

android {
compileSdkVersion 19
buildToolsVersion "20.0.0"

defaultConfig {
    minSdkVersion 9
    targetSdkVersion 20
}

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src', 'endpoint-libs/libdeviceinfoendpoint-v1/deviceinfoendpoint/deviceinfoendpoint-v1-generated-source', 'endpoint-libs/librpurchaseendpoint-v1/rpurchaseendpoint/rpurchaseendpoint-v1-generated-source', 'endpoint-libs/libupaccendpoint-v1/upaccendpoint/upaccendpoint-v1-generated-source', 'endpoint-libs/libcycleendpoint-v1/cycleendpoint/cycleendpoint-v1-generated-source', 'endpoint-libs/libtranslogendpoint-v1/translogendpoint/translogendpoint-v1-generated-source', 'endpoint-libs/libmessageEndpoint-v1/messageEndpoint/messageendpoint-v1-generated-source', 'endpoint-libs/libcycleuseendpoint-v1/cycleuseendpoint/cycleuseendpoint-v1-generated-source']
        resources.srcDirs = ['src', 'endpoint-libs/libdeviceinfoendpoint-v1/deviceinfoendpoint/deviceinfoendpoint-v1-generated-source', 'endpoint-libs/librpurchaseendpoint-v1/rpurchaseendpoint/rpurchaseendpoint-v1-generated-source', 'endpoint-libs/libupaccendpoint-v1/upaccendpoint/upaccendpoint-v1-generated-source', 'endpoint-libs/libcycleendpoint-v1/cycleendpoint/cycleendpoint-v1-generated-source', 'endpoint-libs/libtranslogendpoint-v1/translogendpoint/translogendpoint-v1-generated-source', 'endpoint-libs/libmessageEndpoint-v1/messageEndpoint/messageendpoint-v1-generated-source', 'endpoint-libs/libcycleuseendpoint-v1/cycleuseendpoint/cycleuseendpoint-v1-generated-source']
        aidl.srcDirs = ['src', 'endpoint-libs/libdeviceinfoendpoint-v1/deviceinfoendpoint/deviceinfoendpoint-v1-generated-source', 'endpoint-libs/librpurchaseendpoint-v1/rpurchaseendpoint/rpurchaseendpoint-v1-generated-source', 'endpoint-libs/libupaccendpoint-v1/upaccendpoint/upaccendpoint-v1-generated-source', 'endpoint-libs/libcycleendpoint-v1/cycleendpoint/cycleendpoint-v1-generated-source', 'endpoint-libs/libtranslogendpoint-v1/translogendpoint/translogendpoint-v1-generated-source', 'endpoint-libs/libmessageEndpoint-v1/messageEndpoint/messageendpoint-v1-generated-source', 'endpoint-libs/libcycleuseendpoint-v1/cycleuseendpoint/cycleuseendpoint-v1-generated-source']
        renderscript.srcDirs = ['src', 'endpoint-libs/libdeviceinfoendpoint-v1/deviceinfoendpoint/deviceinfoendpoint-v1-generated-source', 'endpoint-libs/librpurchaseendpoint-v1/rpurchaseendpoint/rpurchaseendpoint-v1-generated-source', 'endpoint-libs/libupaccendpoint-v1/upaccendpoint/upaccendpoint-v1-generated-source', 'endpoint-libs/libcycleendpoint-v1/cycleendpoint/cycleendpoint-v1-generated-source', 'endpoint-libs/libtranslogendpoint-v1/translogendpoint/translogendpoint-v1-generated-source', 'endpoint-libs/libmessageEndpoint-v1/messageEndpoint/messageendpoint-v1-generated-source', 'endpoint-libs/libcycleuseendpoint-v1/cycleuseendpoint/cycleuseendpoint-v1-generated-source']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }

    // Move the tests to tests/java, tests/res, etc...
    instrumentTest.setRoot('tests')

    // Move the build types to build-types/<type>
    // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
    // This moves them out of them default location under src/<type>/... which would
    // conflict with src/ being used by the main source set.
    // Adding new build types or product flavors should be accompanied
    // by a similar customization.
    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')
}
}

appengine的gradle文件

apply plugin: 'java'
dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')

    compile 'com.google.appengine:appengine-endpoints:1.9.1'
    compile 'com.google.appengine:appengine-endpoints-deps:1.9.1'
    compile 'javax.servlet:servlet-api:2.5'
    compile 'org.datanucleus:datanucleus-core:3.2.8'
    compile 'com.google.appengine.orm:datanucleus-appengine:2.1.2'
    compile group: 'javax.persistence', name: 'persistence-api', version: '1.0'
}
repositories {
    mavenCentral()
}
sourceSets {
    main.java.srcDirs = ['src']
    main.resources.srcDirs = ['src']
    test.java.srcDirs = ['tests/java']
    test.resources.srcDirs = ['tests/resources']
}

appengine { // ! ERROR IS HERE !
downloadSdk = true
appcfg {
    oauth2 = true
}
endpoints {
    getClientLibsOnBuild = true
    getDiscoveryDocsOnBuild = true
}
}

错误

Could not find method appengine() for arguments        [build_8nkni14q2n6l61jnsyaantjd6$_run_closure4@188b4628] on project ':AgriExpenseTT-AppEngine'

最佳答案

在这里您可以找到如何使用带有 gradle 的 App Engine 的指南:https://github.com/GoogleCloudPlatform/gradle-appengine-plugin

要使用 App Engine 插件,请在您的构建脚本中包含:

apply plugin: 'appengine'

插件 JAR 需要在构建脚本的类路径中定义。它直接在 Maven Central 上可用。或者,您可以从 GitHub 下载它并将其部署到本地存储库。以下代码 fragment 显示了如何从 Maven Central 检索它的示例:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.17'
    }
}

注意:该插件要求您设置环境变量 APPENGINE_HOME 或系统属性 appengine.sdk.root 指向您当前的 Google App Engine SDK 安装。如果您同时设置了两个变量,则系统属性优先于环境变量。或者,您可以通过将约定属性 downloadSdk 设置为 true 来选择自动下载 SDK。此选项要求您通过设置配置 appengineSdk 来指定要使用的 SDK 版本。

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.17'
}

关于java - 找不到 Gradle DSL 方法 : 'appengine()' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27770847/

相关文章:

java - 如何使用应用程序引擎中生成的默认ID

java - java中日期转换失败

android - logcat 停止写入设备上的文件

android - 始终使用 BroadcastReceiver 运行服务以进行调用窃听

google-app-engine - NDB 的 GAE Memcache 使用率似乎很低

java - 黑莓:重写paint()与subpaint()

java - Hibernate映射一个类到两个表(两个表多对一关系)

java - 如何使用JSF 2.0 f :ajax option with . jsp页面

java - 在 Java 中处理静态集合

android - 使用android sdk登录Facebook无法正常工作