Reputation: 1
We have created Google Endpoint api v1 using android studio. We have received email from google cloud that is Google Api version v1 was deprecated. So we tried to update v1 to v2. So referred following link for migrate. https://cloud.google.com/endpoints/docs/frameworks/legacy/v1/java/migrating-android#before_you_begin
After change when we try to run that time show '.../backend/build/exploded-app' does not exist
If I look at the directory tree within my project I can see the exploded directory "../build/exploded-backend" based on the module name "backend" and 'endpointsDiscoveryDocs' that contains Discovery docs.
Not available '.../backend/build/exploded-app' and '.../backend/build/endpointsClientLibs'
When i tried to execute, Build was successful but shown on Error running backend: Cannot start process, the working directory '...\MyAppliaiton\backend\build\exploded-app' does not exist
Following build.xml are used in my android project
MyApplication build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.google.guava:guava:19.0'
classpath 'com.android.tools.build:gradle:2.3.3'
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
App build.gradle
**apply plugin: 'com.android.application'
// V2: Apply the new Endpoints Framework client plugin
apply plugin: 'com.google.cloud.tools.endpoints-framework-client'
buildscript {
repositories {
jcenter()
}
dependencies {
// V2: Add the new Endpoints Framework plugin dependencies
classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.0'
}
}
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.chainsys.myapplication"
minSdkVersion 20
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.code.findbugs:jsr305:2.0.1'
testCompile 'junit:junit:4.12'
//compile project(path: ':backend', configuration: 'android-endpoints')
// V2: Endpoints Framework v2 migration
endpointsServer project(path: ':backend', configuration: 'endpoints')
compile 'com.google.api-client:google-api-client:1.23.0'
compile 'com.google.http-client:google-http-client-android:1.23.0'
}**
Backend build.gradle
**buildscript {
repositories {
jcenter()
}
dependencies {
//classpath 'com.google.appengine:gradle-appengine-plugin:1.9.42'
// V2: Add the new App Engine and Endpoints Frameworks plugin dependencies
classpath 'com.google.cloud.tools:endpoints-framework-gradle-plugin:1.0.0'
classpath 'com.google.cloud.tools:appengine-gradle-plugin:1.3.2'
}
}
repositories {
jcenter();
}
apply plugin: 'java'
apply plugin: 'war'
// apply plugin: 'appengine'
// V2: Apply new App Engine and Endpoints Framework server plugins
apply plugin: 'com.google.cloud.tools.appengine'
apply plugin: 'com.google.cloud.tools.endpoints-framework-server'
dependencies {
//appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.42'
// V2: Endpoints Framework v2 migration
compile 'com.google.endpoints:endpoints-framework:2.0.7'
compile 'javax.inject:javax.inject:1'
compile 'javax.servlet:servlet-api:2.5'
// compile 'com.google.appengine:appengine-endpoints:1.9.42'
// compile 'com.google.appengine:appengine-endpoints-deps:1.9.42'
// compile 'javax.servlet:servlet-api:2.5'
}
// V2: Define deployment configuration using the new App Engine plugin
// with the appengine closure
appengine { // App Engine tasks configuration
deploy { // deploy configuration
// The following is used for acceptance tests and
// is not required for a migration.
project = findProperty("appengine.deploy.project")
version = findProperty("appengine.deploy.version")
def promoteProp = findProperty("appengine.deploy.promote")
if (promoteProp != null) {
promote = new Boolean(promoteProp)
}
}
}**
Backend web.xml
**<?xml version="1.0" encoding="utf-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
<servlet>
<servlet-name>EndpointsServlet</servlet-name>
<servlet-class>com.google.api.server.spi.EndpointsServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value>com.example.sugumar.p.myapplication.backend.MyEndpoint</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>EndpointsServlet</servlet-name>
<url-pattern>/_ah/api/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>**
I need a help what happened here.
Upvotes: 0
Views: 460
Reputation: 2383
I was updating my appengine module from Java 7 to Java 8 and Endpoints v1 to Endpoints v2 and it really is a pain in the ass.
I have solved it going to
[backend-module]/[backend-module].iml
and changing the line
value="C:\workspace\ [project] \ [backend-module] \build\exploded-app
to
value="C:\workspace\ [project] \ [backend-module] \build\exploded-[backend-module]
Upvotes: 6