2015-09-06 84 views
0

正如帖子的名称所暗示的,在修改我的Gradle构建脚本以包含Google App Engine后,我无法获得基本的Hello World Android应用程序。这里是我的应用程序的build.gradle文件:Google App Engine在Hello World应用程序中不起作用

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' 
} 

这里是我的项目的build.gradle文件:

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() 
    } 
} 

我相当肯定的是,脚本工作在一定程度上,是因为它第一次运行它了很长一段时间。在这第一次,插件正在下载。当我注释掉全部的Google App Engine内容时,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 

我不知道这个错误输出是否会是有用的,但无论如何,我都包括它。

我希望Stack Overflow上的Android专家能够帮助我解决这个问题。作为参考,我需要App Engine,因为我计划在以后使用地理编码。我已经坚持了几天,现在我尝试了通过Google和Stack Overflow找到的所有资源。

回答

0

我认为这与你的依赖有关。根据Google App Engine文档,支持的Java servlet版本是2.5。我认为Google App Engine尚不支持3.0版。

从谷歌App Engine的Java文档引用:

App Engine使用Web应用程序的Java Servlet的2.5标准。您可以在标准WAR目录结构中提供应用程序的servlet类,JavaServer Pages(JSP),静态文件和数据文件以及部署描述符(web.xml文件)和其他配置文件。 App Engine根据部署描述符调用servlet来提供请求。

你必须改变你的依赖,以这样的:

compile "javax.servlet:servlet-api:2.5" 
相关问题