2014-06-30 10 views
6

Ho appena aggiunto il modulo App Engine alla mia app e alla sincronizzazione, gradle ha iniziato a scaricare lo zip App Engine da Maven. Il file zip di App Engine è di circa 150mb + e usare Maven per scaricarlo automaticamente è molto lento, quindi ho deciso di scaricare manualmente l'appengine java sdk (appengine-java-sdk-1.9.6.zip) e installarlo manualmente. Ora ho il file zip, ma dove lo posiziono in modo che Android Studio (0.8.1) lo prelevi e lo installi invece di provare a scaricarlo dal repository di Maven?Come installare manualmente App Engine in Android Studio?

Grazie!

risposta

4

I modelli per appengine forniti con Android Studio scaricano di default il sdk appengine ... quindi se si utilizzano questi modelli, è necessario eseguire quanto segue.

modificare il file build.gradle e rimuovere

dependencies { 
    appengineSdk "com.google.appengine:appengine-java-sdk:X.X.X" <--- remove 
... 
} 

e

appengine { 
    downloadSdk = true <--- remove this line as it tells it to dl the sdk  
} 

Quindi è possibile fare riferimento a uno SDK scaricato utilizzando una proprietà di sistema. Creare un file nella stessa directory del file build.gradle nel modulo appengine

gradle.properties

systemProp.appengine.sdk.root = "path to appengine sdk" 

ci sono altri modi per specificare la posizione del SDK (come l'utilizzo di una variabile d'ambiente), che potrebbe funzionare meglio per voi, controllare https://github.com/GoogleCloudPlatform/gradle-appengine-plugin

+0

Ho implementato questo metodo e ora sto ricevendo "C'era un errore in esecuzione comando endpoint get-client-lib: Re annuncio scaduto '. – gcmx

+0

Questo è un altro comando di rete, ci è voluto molto tempo? Puoi eseguirlo con --info o --debug o --stacktrace? – loosebazooka

+2

Grazie per il tuo aiuto, finalmente scaricato da solo. E, per chiunque sia nella stessa scarpa, scarica App Engine nella directory principale di ".gradle" per impostazione predefinita. Estrai i tuoi file lì e individuali nel tuo progetto. – gcmx

1

Un approccio completamente diverso sarebbe quello di creare un repository di dati locali per il sdk appengine e il riferimento direttamente e lasciare tutto il resto intatto.

repositories { 
    maven { 
    url 'file://path/to/myCustomRepo' 
    } 
    mavenCentral() 
} 

Quindi questo metodo è più semplice se si afferra l'SDK appengine direttamente da maven.org perché sarà nominato in modo corretto. (http://search.maven.org/#artifactdetails|com.google.appengine|appengine-java-sdk|1.9.6|zip) ma ha scelto la versione a cui si fa riferimento nel file di build.

Informazioni sul repository Maven, è necessario configurarlo correttamente. Se lo zip scaricato è /path/to/myCustomRepo, è necessario inserire lo zip nella posizione corretta: /path/to/myCustomRepo/com/google/appengine/appengine-java-sdk/1.9.6 in base al numero di versione che si sta utilizzando.

Se avete solo il file zip nella directory repository è necessario modificare la riga downloadSdk per indicare tutto ciò che è disponibile è la "zip" con il modificatore @zip.

downloadSdk "com.google.appengine:appengine-java-sdk:[email protected]" 

Se non si desidera utilizzare il @zip è possibile aggiungere un file .pom semplice (accanto al .zip) in modo che il sistema può correttamente rilevare il riferimento

appengine-java -SDK-1.9.6.pom

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.google.appengine</groupId> 
    <artifactId>appengine-java-sdk</artifactId> 
    <packaging>zip</packaging> 
    <version>1.9.6</version> 
</project> 
0

Un'altra soluzione, risolto!

Impostare il percorso dell'SDK del motore dell'app nel file denominato gradle.proprietà:

systemProp.appengine.sdk.root=C:/<PATH UNTIL BEFORE OF THE FOLDER APP_ENGINE_SDK>/appengine-java-sdk-1.9.40

Esempio:

systemProp.appengine.sdk.root=C:/Users/programmer/StudioProjects/MyApplication/.gradle/appengine-java-sdk-1.9.40

Modificare il file build.gradle e cambiare a false la seguente riga:

appengine { downloadSdk = false }

Problemi correlati