Código de ejemplo de Google Play, Drive API en IntelliJ
Estoy siguiendo el inicio rápido de Google Drive en las instrucciones de Android y lo tengo trabajando en Eclipse / Kepler. (Juno es simplemente desagradable.) Sin embargo, estoy mucho más familiarizado con IntelliJ, por lo que estoy tratando de averiguar cómo instalar estas API allí de una manera correspondiente.
Creo que me estoy desperdiciando en la parte de Drive API. El complemento Eclipse instala Drive de alguna manera o lugar especial. He añadido Google-api-services-drive-v2-rev63-1.14.1-beta.jar como una biblioteca, igual que los demás (Google-play-services y api_java_client). Pero cuando ejecuto la aplicación vuelve con
- ¿Es posible vincular los comentarios en IntelliJ Idea?
- Android Studio AI 140
- Android Studio Start Failed - ClassNotFoundException: com.intellij.ide.plugins.PluginManager
- Finalización del código en Android Studio
- Cómo subir un proyecto de estudio de Android a Subversion por primera vez
java.lang.NoClassDefFoundError: com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential
Y también he conseguido un NoClassDefFoundError que tiene que ver con Drive $ Builder.
En IntelliJ los ámbitos .jar se establecen en "Compilar", excepto en las bibliotecas api_java_client que se establecen en "Proporcionado". Ninguno de ellos tiene "Exportar" marcado.
Editar: agregó el módulo y la dependencia. Ahora tengo un error diferente:
04-07 00:39:59.766: ERROR/AndroidRuntime(10697): FATAL EXCEPTION: main java.lang.NoClassDefFoundError: com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential at com.fallinghawks.weight4.App.onCreate(App.java:15)
App.java:15 es
credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);
Puedo encontrar la clase que está pidiendo ….
Edición 2, después de agregar bibliotecas por las instrucciones de CrazyCoder: Compila, se ejecuta, pero obtengo el siguiente error. Estoy seguro de que me perdí haciendo algo exactamente bien, lo intentaré de nuevo en un minuto, pero mientras tanto el error es:
04-10 18:02:35.120: ERROR/AndroidRuntime(740): FATAL EXCEPTION: main java.lang.ExceptionInInitializerError at com.google.api.services.drive.Drive$Builder.build(Drive.java:7301) at com.example.DriveQuickstart.MyActivity.getDriveService(MyActivity.java:110) at com.example.DriveQuickstart.MyActivity.onActivityResult(MyActivity.java:49) at android.app.Activity.dispatchActivityResult(Activity.java:5293) at android.app.ActivityThread.deliverResults(ActivityThread.java:3315) at android.app.ActivityThread.handleSendResult(ActivityThread.java:3362) at android.app.ActivityThread.access$1100(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5041) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NoClassDefFoundError: com.google.common.base.Preconditions at com.google.api.services.drive.Drive.<clinit>(Drive.java:63)
(Esperemos que la edición final): Sí, me perdí algo y la bestia está funcionando! ¡¡Muchas gracias!!
Ahora puedo usar IntelliJ de nuevo para trabajar en mi proyecto "real" … sooooo mucho mejor 🙂
- No se pueden encontrar objetivos de Android en este SDK en IntelliJ 2016
- Tamaño de fuente del Editor de Android Studio
- Exportar objetos desde el depurador de Android Studio
- Android Studio no funciona con HoloEverywhere y ActionBarSherlock
- Qué archivos debo agregar a SVN ignorar en un proyecto utilizando Android Studio
- Evitando! = Null utilizando un método en java
- IntelliJ Live Templates bug con la función completeSmart ()
- IntelliJ Idea no genera id en R.java
Seguí adelante y creé el proyecto IntelliJ IDEA desde cero, pasé unos 15 minutos, funciona bien.
-
Descargue la biblioteca y las dependencias de Drive API v2 .
-
Desempaquete en algún lugar, abra
readme.html
, pasar un par de minutos leyendo para entender qué frascos son necesarios. -
Cree un nuevo proyecto de aplicación de Android en IDEA utilizando un asistente con el paquete
MainActivity
yMainActivity
. Utilice Android 4.2.2 API de Google como plataforma. -
Copie los frascos siguientes de la biblioteca de Drive API descargada en la carpeta
libs
del proyecto (debería haber aprendido qué jarras usar desde el paso 2):-
google-api-client-1.14.1-beta.jar
-
google-api-client-android-1.14.1-beta.jar
-
google-http-client-1.14.1-beta.jar
-
google-http-client-android-1.14.1-beta.jar
-
google-http-client-gson-1.14.1-beta.jar
-
google-oauth-client-1.14.1-beta.jar
-
gson-2.1.jar
-
jsr305-1.3.9.jar
-
google-api-services-drive-v2-rev65-1.14.1-beta.jar
-
-
Configure una biblioteca de proyectos de estos frascos. Puede hacerse seleccionando los frascos en la vista del proyecto, haga clic con el botón derecho, Agregar como biblioteca … , añada esta biblioteca a las dependencias de su módulo principal.
-
File
|Import Module
, navegue aANDROID_SDK\extras\google\google_play_services\libproject\google-play-services_lib
, desde los orígenes existentes. -
Añada
google-play-services.jar
a las dependencias del módulo importado, habilite la casilla de verificación Exportar , debería verse así . -
Agregue el módulo creado en el paso 6 a las dependencias de su módulo de aplicación principal .
-
Copie el código de ejemplo de
MainActivity
desde el inicio rápido , el paso 4 en el archivoMainActivity.java
que reemplaza el código antiguo, editeAndroidManifest.xml
también por la guía. -
Construir, ejecutar en el emulador o en el dispositivo para probar (no se olvide de los pasos 1-2 del Inicio rápido ).
O simplemente puede descargar y utilizar la muestra completamente aislada que he creado siguiendo los pasos anteriores (el módulo del paso 6 está incluido en el proyecto).
Falló para mí en el emulador debido a algún error de la aplicación de la cámara (el ejemplo utiliza la cámara y mi emulador no lo tenía configurado), sino que trabajó en el dispositivo Galaxy Nexus. El ejemplo toma una fotografía utilizando la cámara del dispositivo y la carga en Google Drive.
- Cómo ver realmente un mapa de bits tomado de un volcado de montón de Android
- ¿Cómo crear una cuenta de usuario _segmentar desde un token de Google para Android?