2010-11-22 22 views
0

Je veux juste obtenir ma vidéo playUrl dans android .... J'ai vérifié les questions pertinentes sur l'utilisation de YouTubeSample dans android, Leur réponse est oui Mais quand je cours mon code dans l'émulateur ou mon appareil Android ne fonctionne pas mon code est:Je ne peux pas utiliser google api java client YouTubeSample dans l'application android

import java.io.IOException; 
    import com.google.api.client.googleapis.GoogleHeaders; 
    import com.google.api.client.googleapis.GoogleTransport; 
    import com.google.api.client.googleapis.json.*; 
    import com.google.api.client.http.*; 
    import android.app.Activity; 
    import android.os.Bundle; 
    import android.widget.TextView; 
    public class main extends Activity { 
    HttpTransport transport; 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      Debug.enableLogging(); 
      try { 
       try { 
       HttpTransport transport = setUpTransport(); 
       showVideos(transport); 
       } catch (HttpResponseException e) { 

       throw e; 
       } 
      } catch (Throwable t) { 
       t.printStackTrace(); 

      } 
     } 
     private static HttpTransport setUpTransport() { 
      HttpTransport transport = GoogleTransport.create(); 
      GoogleHeaders headers = (GoogleHeaders) transport.defaultHeaders; 
      headers.setApplicationName("Google-YouTubeSample/1.0"); 
      headers.gdataVersion = "2"; 
      transport.addParser(new JsonCParser()); 
      return transport; 
      } 

      private static VideoFeed showVideos(HttpTransport transport) 
       throws IOException { 
      //View.header("Get Videos"); 
      // build URL for the video feed for "search stories" 
      YouTubeUrl url = YouTubeUrl.forVideosFeed(); 
      url.author = "cecol3500123"; 
      // execute GData request for the feed 
      VideoFeed feed = VideoFeed.executeGet(transport, url); 
      //View.display(feed); 
      return feed; 
      } 
    } 

Je compilons-ok, mais sur le dispositif qui vient d'obtenir la principale application a été arrêtée de façon inattendue

Je trouve que je toujours arrêté sur le code: HttpTransport transport = GoogleTransport.create();

Le AndroidManifest a définir les droits: <uses-permission android:name="android.permission.INTERNET"></uses-permission>

Et mon projet a google api bibliothèque client java. Ce que je définis, est-ce que ça va? J'ai tout essayé (j'avais modifié le code, encore et encore). Je ne sais pas comment faire. S'il vous plaît aidez-moi, je veux juste obtenir ma vidéo playUrl dans android .... (Ou quelqu'un peut-il me donner le bon code?). désolé pour mon mauvais anglais

renew with debug trace 
this is my program Debug trace        
11-23 09:45:10.466: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f0700e5         
11-23 09:45:10.486: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f020031   
11-23 09:45:10.496: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f020030   
11-23 09:45:10.506: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f050000  
11-23 09:45:10.716: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f060000    
11-23 09:45:10.856: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f060001      
11-23 09:45:11.866: DEBUG/ddm-heap(180): Got feature list request  
11-23 09:45:12.166: DEBUG/ddm-heap(185): Got feature list request     
11-23 09:45:12.526: DEBUG/ddm-heap(165): Got feature list request    
11-23 09:45:12.716: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f0700e5        
11-23 09:45:12.756: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f020031         
11-23 09:45:12.767: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f020030       
11-23 09:45:12.776: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f050000      
11-23 09:45:12.796: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f060000       
11-23 09:45:12.826: WARN/ResourceType(62): Resources don't contain package for resource number 0x7f060001  
11-23 09:45:13.286: DEBUG/ddm-heap(143): Got feature list request  
11-23 09:45:13.646: WARN/BackupManagerService(62): dataChanged but no participant pkg='com.android.providers.settings' uid=10017  
11-23 09:45:13.946: WARN/BackupManagerService(62): dataChanged but no participant pkg='com.android.providers.settings' uid=10017  
11-23 09:45:14.426: DEBUG/dalvikvm(62): GC freed 8344 objects/558776 bytes in 461ms  
11-23 09:45:14.826: INFO/ActivityManager(62): Start proc com.android.email for broadcast  com.android.email/com.android.exchange.BootReceiver: pid=205 uid=10023 gids={3003, 1015} 
11-23 09:45:14.836: INFO/ActivityManager(62): Starting activity: Intent {  act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.testcom/.main }   
11-23 09:45:15.066: DEBUG/AndroidRuntime(185): Shutting down VM   
11-23 09:45:15.076: DEBUG/dalvikvm(185): DestroyJavaVM waiting for non-daemon threads to exit   
11-23 09:45:15.106: DEBUG/dalvikvm(185): DestroyJavaVM shutting VM down  
11-23 09:45:15.106: DEBUG/dalvikvm(185): HeapWorker thread shutting down  
11-23 09:45:15.116: DEBUG/dalvikvm(185): HeapWorker thread has shut down  
11-23 09:45:15.127: DEBUG/jdwp(185): JDWP shutting down net...  
11-23 09:45:15.127: INFO/dalvikvm(185): Debugger has detached; object registry had 1 entries    
11-23 09:45:15.147: DEBUG/dalvikvm(185): VM cleaning up    
11-23 09:45:15.226: ERROR/AndroidRuntime(185): ERROR: thread attach failed   
11-23 09:45:15.496: DEBUG/dalvikvm(185): LinearAlloc 0x0 used 639500 of 5242880 (12%)   
11-23 09:45:15.566: WARN/ActivityManager(62): Activity pause timeout for  HistoryRecord{43cec138 com.android.launcher/.Launcher}  
11-23 09:45:15.676: INFO/ActivityManager(62): Start proc com.testcom for activity  com.testcom/.main: pid=210 uid=10027 gids={3003, 1015} 
11-23 09:45:16.266: DEBUG/ddm-heap(205): Got feature list request 
11-23 09:45:16.786: DEBUG/ddm-heap(210): Got feature list request 
11-23 09:45:16.976: DEBUG/dalvikvm(30): GC freed 284 objects/10848 bytes in 1262ms 
11-23 09:45:17.517: DEBUG/dalvikvm(30): GC freed 50 objects/2224 bytes in 410ms 
11-23 09:45:17.647: INFO/dalvikvm(210): Could not find method com.google.api.client.googleapis.GoogleTransport.create, referenced from method com.testcom.main.setUpTransport  
11-23 09:45:17.657: WARN/dalvikvm(210): VFY: unable to resolve static method 4:  Lcom/google/api/client/googleapis/GoogleTransport;.create()Lcom/google/api/client/http/HttpTransport; 
11-23 09:45:17.657: DEBUG/dalvikvm(210): VFY: replacing opcode 0x71 at 0x0009  
11-23 09:45:17.677: DEBUG/dalvikvm(210): Making a copy of Lcom/testcom/main;.setUpTransport code (128 bytes)  
11-23 09:45:17.687: WARN/dalvikvm(210): VFY: unable to find class referenced in signature (Lcom/google/api/client/http/HttpTransport;) 
11-23 09:45:17.697: WARN/dalvikvm(210): Unable to resolve superclass of Lcom/testcom/YouTubeUrl; (6) 
11-23 09:45:17.777: WARN/dalvikvm(210): Link of class 'Lcom/testcom/YouTubeUrl;' failed 
11-23 09:45:17.777: INFO/dalvikvm(210): Could not find method  com.testcom.YouTubeUrl.forVideosFeed, referenced from method com.testcom.main.showVideos 
11-23 09:45:17.787: WARN/dalvikvm(210): VFY: unable to resolve static method 40:  Lcom/testcom/YouTubeUrl;.forVideosFeed()Lcom/testcom/YouTubeUrl; 
11-23 09:45:17.787: DEBUG/dalvikvm(210): VFY: replacing opcode 0x71 at 0x0007  
11-23 09:45:17.826: DEBUG/dalvikvm(210): Making a copy of Lcom/testcom/main;.showVideos code (56 bytes)  
11-23 09:45:17.867: WARN/dalvikvm(210): VFY: unable to find class referenced in signature (Lcom/google/api/client/http/HttpTransport;)  
11-23 09:45:17.877: WARN/dalvikvm(210): VFY: unable to find class referenced in signature (Lcom/google/api/client/http/HttpTransport;)  
11-23 09:45:17.927: WARN/dalvikvm(210): VFY: unable to resolve exception class 13 (Lcom/google/api/client/http/HttpResponseException;) 
11-23 09:45:17.937: WARN/dalvikvm(210): VFY: unable to find exception handler at addr 0x13  
11-23 09:45:17.947: WARN/dalvikvm(210): VFY: rejected Lcom/testcom/main;.onCreate (Landroid/os/Bundle;)V  
11-23 09:45:17.957: WARN/dalvikvm(210): VFY: rejecting opcode 0x0d at 0x0013  
11-23 09:45:17.957: WARN/dalvikvm(210): VFY: rejected Lcom/testcom/main;.onCreate  (Landroid/os/Bundle;)V 
11-23 09:45:18.017: WARN/dalvikvm(210): Verifier rejected class Lcom/testcom/main;  
11-23 09:45:18.017: WARN/dalvikvm(210): Class init failed in newInstance call  (Lcom/testcom/main;) 
11-23 09:45:18.027: DEBUG/AndroidRuntime(210): Shutting down VM  
11-23 09:45:18.037: WARN/dalvikvm(210): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
11-23 09:45:18.047: ERROR/AndroidRuntime(210): Uncaught handler: thread main exiting due to uncaught exception  
11-23 09:45:18.107: DEBUG/dalvikvm(30): GC freed 2 objects/48 bytes in 568ms  
11-23 09:45:18.167: ERROR/AndroidRuntime(210): java.lang.VerifyError: com.testcom.main  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at java.lang.Class.newInstanceImpl(Native Method)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at java.lang.Class.newInstance(Class.java:1479)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at android.os.Handler.dispatchMessage(Handler.java:99)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at android.os.Looper.loop(Looper.java:123)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at android.app.ActivityThread.main(ActivityThread.java:4363)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at java.lang.reflect.Method.invokeNative(Native Method)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at java.lang.reflect.Method.invoke(Method.java:521)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)  
11-23 09:45:18.167: ERROR/AndroidRuntime(210):  at dalvik.system.NativeStart.main(Native Method)  
11-23 09:45:18.237: INFO/ActivityThread(205): Publishing provider com.android.email.provider: com.android.email.provider.EmailProvider 

Répondre

1

Hé, tout le monde (seulement deux personnes) j'ai trouvé le problème est mon chemin de la bibliothèque ne va pas Le classpath de compilation est juste, mais le chemin de classe d'exécution ne va pas dans Eclipse Bien que je ne sais pas comment le cas Ma solution est d'ajouter le fichier .jar sous le projet directement au lieu de créer une bibliothèque utilisateur (qui inclut le fichier .jar) et de l'ajouter au projet Donc, le youtubesample peut fonctionner sur android mais vous devez faire attention aux paramètres de classpath

0

Vous avez certainement ajouter quelque chose comme:

<uses-library android:name="com.google.android.something" /> 

dans votre manifeste (je ne sais pas ce que quelque chose est pour le transport google)

+0

En fait, mon AndroidManifest a été configuré: "android.permission.GET_ACCOUNTS", "android.permission.MANAGE_ACCOUNTS", "android.permission.USE_CREDENTIALS", "com.google.android.googleapps.permission.GOO GLE_AUTH "," com.google.android.googleapps.permission.GOOGLE_AUTH.youtube ",, Quel est mon manque? – cecol

+0

J'ai édité mon post, je suis nouveau dans stackoverflow et je ne vois pas que la partie interessée n'apparait pas! Vous manquerez probablement somme uses-library – Khetzal

+0

Est-ce que add ? Je viens de tester mon code avec votre Recommandé, mais il ne fonctionne pas comme avant, est-ce problème dans le fichier AndroidManifest? (mais merci pour votre réponse) – cecol

1

Il n'est pas lié aux autorisations.

Je suppose que ce qui se passe est que vous avez com.google.api.client.googleapis.GoogleTransport sur votre classpath de compilation, mais pas le classpath runtime. Ou peut-être vous compilez contre une version, mais en cours d'exécution contre une autre version de la bibliothèque. Cela m'arrive par exemple lorsque j'utilise Maven, qui, pour une raison ou une autre, n'est pas respecté lors de l'exécution via Eclipse. Vous devez vous assurer que la dépendance sur le paquet google-api-java-client est explicitement spécifiée dans le .classpath.

+0

Donc, le problème est quand mon programme en cours d'exécution, il ne peut pas lier à google api java clent lib, mais j'avais mis tout lib dans classpath, ce que je dois ajuster? (merci pour votre réponse, désolé pour mon pauvre anglais) – cecol