No se puede importar la clase de biblioteca de cliente de nodos de nube de google en el proyecto de Android
Tengo dificultades para que Google Cloud Endpoints funcione. Tengo un proyecto de extremos de Python que funciona en GAE y funciona perfectamente usando el explorador del api. Sin embargo estoy luchando para generar correctamente la biblioteca del cliente y utilizarlo en mi aplicación de Android. He intentado una serie de proyectos de ejemplo y tienen el mismo problema cada vez; No puedo importar y utilizar las clases de modelo de las bibliotecas cliente.
Esto es lo que estoy haciendo (para este ejemplo usaré el ejemplo de python de api de helloworld en https://github.com/GoogleCloudPlatform/appengine-endpoints-helloendpoints-python )
- Android Systrace Ningún archivo ni directorio
- Cómo guardar la URL actual en Android Kivy Application
- Ejecución de un teléfono Android como un servidor web estable (para una secuencia de comandos CGI de Python)
- Buildozer no pudo ejecutar el último comando
- Regístrate usando G + (Google+) usando kivy
- Descomprimir el código de ejemplo
-
Genere la biblioteca del cliente navegando a la carpeta y ejecutándose
<gae-sdk>\endpointscfg.py get_client_lib java helloworld_api.HelloWorldApi
-
Descomprimir la carpeta generada y copiarla en la raíz del proyecto en eclipse
-
En Eclipse, agregue "your_app_id_appspot_com-helloworld-v1-20140310110152-java-1.17.0-rc-sources.jar" para crear ruta de acceso (Haga clic con el botón derecho en JAR> Construir ruta> Agregar a la ruta de construcción)
En este momento, puedo importar com.appspot.your_app_id.helloworld.model.*
Pero no puedo importar com.appspot.your_app_id.helloworld.model.Greeting
¿Puede alguien arrojar alguna luz sobre lo que está sucediendo aquí? He intentado muchas maneras diferentes conseguir esto trabajar pero tener el mismo problema cada vez.
Muchas gracias,
Tom
- Google Cloud Endpoints Cliente Android: error de autenticación
- Llame a Python google cloud endpoint api desde android
- ¿Cómo puedo obtener la versión del núcleo de Android vía adb (o vía comando Python)?
- ¿Cómo puedo crear un proyecto en kivy en android?
- Python, Kivy y Android Juego
- Ejecución de una aplicación de Python en un teléfono Android real
- Diferencia entre Kivy y PY4A
- Enviar correo electrónico con datos adjuntos de la aplicación Kivy en Android, preferiblemente abriendo un cliente de correo electrónico
El problema es que, de forma predeterminada, el archivo zip generado sólo contiene un jar de fuentes, no un jar de biblioteca compilado real que puede utilizar tu aplicación de Android.
Aquí está la solución:
-
En su carpeta de api del backend (desde el mismo lugar donde se encuentra su app.yaml), genere la biblioteca del cliente como una biblioteca de gradle, de la siguiente manera:
<gae-sdk-path>\endpointscfg.py get_client_lib java -bs gradle helloworld_api.HelloWorldApi
-
Ahora tendrás un helloworld-v1.zip. Descomprimir esto (ya sea aquí o en algún lugar conveniente como ~ / temp)
-
Esto creará una carpeta llamada helloworld, que debería tener un build.gradle allí junto con una carpeta src.
-
Construya su biblioteca cliente utilizando "gradle install" en esta carpeta.
-
Copie
build/libs/helloworld-v1-1.XX-SNAPSHOT.jar
en la carpeta libs de su aplicación Android. -
Añádelo como una biblioteca en Android Studio haciendo clic derecho / add-as-library.
-
Ahora tus clases deben resolverse correctamente.
El paso 4 debe instalar la biblioteca del cliente recién construida en su repositorio local de maven. Puedes seguir las instrucciones de readme.html en la carpeta helloworld / que has extraído para integrarte directamente con el sistema de compilación gradle de tu aplicación Android en lugar de copiar el frasco que construyes manualmente.
Esta publicación indicó que hay un error con la adición como biblioteca de Android Studio: Android Studio: IncorrectOperationException cuando se hace clic en "Agregar como biblioteca" mientras se intenta configurar las bibliotecas cliente de Endpoints de Google Apps
No estoy seguro de si se aplica a Eclipse.
Pude resolver este problema y he proporcionado la solución a continuación.
Cambié a Android Studio Preview 0.4.6 de Eclipse, que ayudó a deshacerse de algunos de los problemas de importación de la biblioteca de Googles (a través de supongo build.gradle config). Siento que no era un problema de Eclipse el cual estaba usando antes.
Fui capaz de arreglar los problemas de importación. El código de los segmentos de tutorial en los documentos oficiales de Google debe sincronizarse.
La solución es hacer los siguientes cambios:
En MainActivity.java , reemplace:
HelloGreeting with HelloworldApiGreeting
En MainActivity.java , agregue lo siguiente en la parte superior:
import android.widget.Toast; import android.os.AsyncTask; import android.util.Log import com.appspot.androidbackend1.helloworld.model.HelloworldApiGreeting; import com.appspot.androidbackend1.helloworld.model.HelloworldApiGreetingCollection;
En MainActivity.java , comente lo siguiente en la parte superior:
import com.appspot.androidbackend1.helloworld.Helloworld.Greetings.Multiply; import com.appspot.androidbackend1.helloworld.model.HelloGreeting;
En Application.java , agregue lo siguiente en la parte superior:
import com.appspot.androidbackend1.helloworld.model.HelloworldApiGreeting;
En Application.java , reemplace:
HelloGreeting with HelloworldApiGreeting
Espero que esto ahorre tiempo para otros
- Reproduce 2 flujos de audio diferentes en el altavoz izquierdo y derecho
- Android Asset Studio: Crear iconos con una imagen no funciona