Java Google应用程序引擎在Hello World应用程序中不工作

Java Google应用程序引擎在Hello World应用程序中不工作,java,android,google-app-engine,gradle,Java,Android,Google App Engine,Gradle,正如这篇文章的名字所暗示的,在修改我的Gradle构建脚本以包含Google应用程序引擎之后,我无法部署一个基本的Hello World Android应用程序。这是我的应用程序的build.gradle文件: apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "22.0.1" defaultConfig { applicat

正如这篇文章的名字所暗示的,在修改我的Gradle构建脚本以包含Google应用程序引擎之后,我无法部署一个基本的Hello World Android应用程序。这是我的应用程序的
build.gradle
文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.example.tbiegeleisen.myfirstapp"
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug {
            debuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.13'
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.13'
    }
}

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.13'
    compile "javax.servlet:servlet-api:3.0"
    compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.13'
}

repositories {
    mavenCentral();
}

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}
这是我的项目的
build.gradle
文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.example.tbiegeleisen.myfirstapp"
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug {
            debuggable true
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.13'
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.13'
    }
}

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.13'
    compile "javax.servlet:servlet-api:3.0"
    compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.13'
}

repositories {
    mavenCentral();
}

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}
我相当肯定这个脚本在某种程度上是有效的,因为它第一次运行时花了很长时间。在这第一次,插件被下载。当我把所有谷歌应用程序引擎的东西都注释掉后,Hello World应用程序就可以毫无问题地启动了。我感觉Android Studio正在尝试执行插件,但要么缺少依赖项,要么我有配置问题

当我运行该应用程序时,Android Studio将旋转大约5-10分钟,并且会出现以下错误消息:

Execution failed for task ':app:preDexDebug'.
\> com.android.ide.common.process.ProcessException:
org.gradle.process.internal.ExecException: Process 'command 'C:\Program
Files\Java\jdk.1.7.0_80\bin\java.exe'' finished with non-zero exit value 3
我不知道这个错误输出是否有用,但我还是把它包括进去了


我希望一位关于堆栈溢出的安卓专家能够帮助我解决这个问题。作为参考,我需要应用程序引擎,因为我计划稍后使用地理编码。我已经在这个问题上纠缠了好几天了,我已经尝试了通过Google和Stack Overflow找到的所有资源。

我认为这与您的依赖性有关。根据GoogleAppEngine文档,支持的Javaservlet版本是2.5。我认为谷歌应用引擎还不支持3.0版

引用Google App Engine Java文档:

AppEngine为web应用程序使用JavaServlet2.5标准。您可以在标准WAR目录结构中提供应用程序的servlet类、JavaServerPages(JSP)、静态文件和数据文件,以及部署描述符(web.xml文件)和其他配置文件。appengine通过根据部署描述符调用servlet来服务请求

您必须将依赖项更改为:

compile "javax.servlet:servlet-api:2.5"