0

ich kürzlich einen App Engine-Modul in meine App während im Anschluss an diesem Tutorial:Android App Engine-Modul nicht finden kann AppCompat Bibliothek

https://cloud.google.com/appengine/docs/java/endpoints/helloendpoints-android-studio

Mein EndpointsAsyncTask (innerhalb der App Engine-Modul) wie folgt aussieht:

import com.google.api.client.extensions.android.http.AndroidHttp; 
import com.google.api.client.extensions.android.json.AndroidJsonFactory; 
import  com.google.api.client.googleapis.services.AbstractGoogleClientRequest; 
import com.google.api.client.googleapis.services.GoogleClientRequestInitializer; 
import com.google.appengine.repackaged.com.google.common.base.Pair; 

import java.io.IOException; 

import javax.naming.Context; 


class EndpointsAsyncTask extends AsyncTask<Pair<Context, String>, Void, String> { 
    private static MyApi myApiService = null; 
    private Context context; 

    @Override 
    protected String doInBackground(Pair<Context, String>... params) { 
     if(myApiService == null) { // Only do this once 
      MyApi.Builder builder = new  MyApi.Builder(AndroidHttp.newCompatibleTransport(), 
       new AndroidJsonFactory(), null) 
       // options for running against local devappserver 
       // - 10.0.2.2 is localhost's IP address in Android emulator 
       // - turn off compression when running against local devappserver 
       .setRootUrl("http://10.0.2.2:8080/_ah/api/") 
       .setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() { 
        @Override 
        public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest) throws IOException { 
         abstractGoogleClientRequest.setDisableGZipContent(true); 
        } 
       }); 
     // end options for devappserver 

     myApiService = builder.build(); 
    } 

    context = params[0].first; 
    String name = params[0].second; 

    try { 
     return myApiService.sayHi(name).execute().getData(); 
    } catch (IOException e) { 
     return e.getMessage(); 
    } 
} 

@Override 
protected void onPostExecute(String result) { 
    Toast.makeText(context, result, Toast.LENGTH_LONG).show(); 
} 

}

bekomme ich Fehler für AsyncTask, .build(), .sayHi() und Toast, nur um mich 'nicht Symbol/Methode Kann lösen' ntion ein paar.

Ich begann zu binden, um herauszufinden, was das Problem war und erkannte, dass die Importe für diese Streicheleinheiten nicht da waren. Also, ich fesselte:

und dann von dort weiter. Leider gaben mir diese auch Fehler.

Also schaute ich in meine Build.Gradle-Datei und erkannte, dass die AppCompat-Abhängigkeit nicht da war.

Mein build.gradle für das Modul App Engine wie folgt aussieht:

// If you would like more information on the gradle-appengine-plugin please refer to the github page 
// https://github.com/GoogleCloudPlatform/gradle-appengine-plugin 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.google.appengine:gradle-appengine-plugin:1.9.34' 
    } 
} 

repositories { 
    jcenter() 
} 

apply plugin: 'java' 
apply plugin: 'war' 
apply plugin: 'appengine' 

sourceCompatibility = JavaVersion.VERSION_1_7 
targetCompatibility = JavaVersion.VERSION_1_7 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:25.0.1' 
    compile 'com.google.appengine:appengine-endpoints:1.9.34' 
    compile 'com.google.appengine:appengine-endpoints-deps:1.9.34' 
    compile 'javax.servlet:servlet-api:2.5' 
    compile 'com.google.http-client:google-http-client-android:1.20.0' 
    compile 'com.google.api-client:google-api-client:1.20.0' 
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.34' 

    } 

appengine { 
    downloadSdk = true 
    appcfg { 
     oauth2 = true 
    } 
    endpoints { 
     getClientLibsOnBuild = true 
     getDiscoveryDocsOnBuild = true 
    } 
} 

Nun, wenn mein Projekt baut er den Fehler gibt:

Error:(25, 13) Failed to resolve: com.android.support:appcompat-v7:25.0.1 

Bin ich etwas in Bezug auf die fehlende So funktioniert das App Engine Modul oder ist mein Problem nicht AppCompat? Im Nachrichtenfenster gibt es mir die Option 'Repository installieren und Projekt synchronisieren', aber wenn ich darauf klicke, passiert nichts.

Jede Hilfe wäre sehr geschätzt, danke!

+0

Was ist Ihre kompilierte SDK-Version? – manolodewiner

+0

compileSdkVersion 25, buildToolsVersion "25.0.1", Klassenpfad "com.android.tools.build:gradle:2.2.3" (Projekt-Gradle-Datei). – Dietmar

Antwort

1

In Ordnung, ich denke, ich habe herausgefunden, was das Problem ist. Meine EndpointsAsyncTask befindet sich im App-Modul und nicht in AppEngine. Wenn jemand dies bestätigen könnte, würde ich es schätzen!

Ich hoffe, das hilft jedem anderen, der durch das Tutorial verwirrt sein könnte.

Verwandte Themen