2010-11-22 2 views
0

단지 내 비디오 playUrl을 Android에서 얻고 싶습니다. 안드로이드에서 YouTubeSample 사용에 관한 관련 문제를 확인했습니다. 답변은 예 하지만 에뮬레이터에서 내 코드하거나 내 코드를 작동하지 않습니다 내 안드로이드 장치는 다음과 같습니다Google api java 클라이언트 YouTubeSample을 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; 
      } 
    } 

나는 그것을 확인 컴파일하지만, 장치에 바로 응용 프로그램의 주요 예기치 않게 중지

내가 발견 를 얻을 수 항상 코드에서 멈췄습니다 : HttpTransport transport = GoogleTransport.create();

AndroidManifest를 권한 설정했습니다 <uses-permission android:name="android.permission.INTERNET"></uses-permission>

을 그리고 내 프로젝트는 구글 API를 자바 클라이언트 라이브러리 있습니다. 내가 설정 한 내용은 괜찮습니까? 나는 모든 것을 시도했다 (나는 코드를 여러 번 수정했다). 나는 어떻게 해야할지 모르겠다. 제발 도와주세요, 그냥 안드로이드에 내 비디오 playUrl 싶어요 .... (또는 누군가가 나에게 옳은 코드를 줄 수 있습니까?). 불쌍한 내 영어 죄송

당신은 같은 추가 확실히해야
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 

답변

1

안녕하세요, 문제를 발견 모두 (단지 두 사람은) 내 라이브러리 경로를 잘 작성하지입니다 컴파일 클래스 경로는 잘하지만 나도 몰라하지만 런타임 클래스 경로는 일식 에서 잘못된 방법 경우 제 솔루션은 .jar 파일을 포함하는 사용자 라이브러리를 생성하고 프로젝트에 추가하는 대신 프로젝트 아래에 .jar 파일을 추가하는 것입니다. 그래서 youtubesample은 android에서 실행할 수 있지만 클래스 경로 설정에주의해야합니다.

0

: (내가 뭔가 구글의 전송을 위해 무엇인지 모른다)

+0

사실, 내 AndroidManifest는 다음과 같이 설정했습니다. "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 ",, 내 부족함은 무엇입니까? – cecol

+0

나는 나의 포스트를 편집했다, 나는 stackoverflow에 새로운 사람이고 나는 interrested 부분이 나타나지 않는 것을 본다! 당신은 아마도 somme uses-library를 놓칠 것입니다. – Khetzal

+0

을 추가합니까? 그냥 내 코드를 테스트 해 보았지만 안드로이드 매니 페스트 파일에 문제가 있습니까? (그러나 대답 해 주셔서 감사합니다) – cecol

1

그것을 매니페스트에

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

을 권한과 관련이 없습니다.

필자는 컴파일 클래스 패스에는 com.google.api.client.googleapis.GoogleTransport가 있지만 런타임 클래스 패스에는없는 것으로 의심됩니다. 또는 한 버전에 대해 컴파일 중이지만 다른 버전의 라이브러리에 대해 실행 중일 수 있습니다.

예를 들어 Eclipse를 통해 실행할 때 어떤 이유로 든 Maven을 사용할 때 이런 일이 발생합니다. google-api-java-client 패키지에 대한 종속성이 .classpath에 명시 적으로 지정되어 있는지 확인해야합니다.

+0

문제는 내 프로그램이 실행될 때 Google api java clent lib에 연결할 수 없지만 클래스 패스에 모든 라이브러리를 설정했는데 조정해야하는 점은 무엇입니까? (네가 대답 해 준 것에 대해 고맙다, 나의 가난한 영어에 대해 유감스럽게 생각한다) – cecol