【问题标题】:Google App Engine is not working in Hello World appGoogle App Engine 无法在 Hello World 应用中运行
【发布时间】:2015-09-06 10:15:52
【问题描述】:

正如帖子的名称所暗示的,在修改我的 Gradle 构建脚本以包含 Google App Engine 后,我无法部署一个基本的 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'
}

这是我项目的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 找到的资源。

【问题讨论】:

    标签: java android google-app-engine gradle


    【解决方案1】:

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

    引自 Google App Engine Java 文档:

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

    你必须把你的依赖改成这样:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 2012-06-13
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2014-09-25
      • 2015-11-27
      相关资源
      最近更新 更多