2013-05-01 65 views
2

我的目標是使用YouTube而不是服務器來存儲視頻。 我需要youtube提供以下功能 1.上傳視頻並獲取他的網址。 2.搜索與開發者標籤匹配的視頻。在Android項目中使用YouTube數據

這樣做,我在這裏找到這些帖子

Using YouTube Data Api in Android

Creating a playlist with Youtube DATA API on Android

後,我看了那些我安裝在

蝕YouTube數據插頭的帖子,並下載這些文件

https://code.google.com/p/gdata-java-client/downloads/detail?name=gdata-samples.java-1.47.1.zip&can=2&q=

gdata-samples.java-1.47.1 
mail.jar 
activation.jar 
servlet-api.jar 

如這裏提到的 https://developers.google.com/gdata/articles/eclipse?hl=iw

的zip文件我添加到libs文件夾在我的Android項目酷似YouTube上提到上面的鏈接...

到項目中,我加入互聯網的權限,導入包,並添加以下行: YouTubeService服務=新YouTubeService(clientID,developer_key);

喜歡在這裏提到: https://developers.google.com/youtube/2.0/developers_guide_java?hl=iw#Authentication

就在這個時候我的項目是這樣的:

package com.example.youtubeuploaddata; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 

import com.google.gdata.client.*; 
import com.google.gdata.client.youtube.*; 
import com.google.gdata.data.*; 
import com.google.gdata.data.geo.impl.*; 
import com.google.gdata.data.media.*; 
import com.google.gdata.data.media.mediarss.*; 
import com.google.gdata.data.youtube.*; 
import com.google.gdata.data.extensions.*; 
import com.google.gdata.util.*; 
import java.io.IOException; 
import java.io.File; 
import java.net.URL; 


public class YoutubeUploadData extends Activity { 


    String clientID = "xxxxxxxxxxxxxxx"; 
    String developer_key = "xxxxxxxxxxxxxxxxxxxxxxx"; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_youtube_upload_data); 


     YouTubeService service = new YouTubeService(clientID, developer_key); 


    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.youtube_upload_data, menu); 
     return true; 
    } 


} 

和我的項目contein這個罐子 enter image description here

在這個時候我上測試應用程序我的設備,並收到這些錯誤:

05-01 21:10:43.993: W/dalvikvm(12171): Unable to resolve superclass of    Lcom/google/gdata/util/common/net/UriParameterMap; (26) 
05-01 21:10:43.993: W/dalvikvm(12171): Link of class 'Lcom/google/gdata/util/common/net/UriParameterMap;' failed 
05-01 21:10:43.993: W/dalvikvm(12171): VFY: unable to find class referenced in signature (Lcom/google/gdata/util/common/net/UriParameterMap;) 
05-01 21:10:43.993: W/dalvikvm(12171): Unable to resolve superclass of Lcom/google/gdata/util/common/net/UriParameterMap; (26) 
05-01 21:10:43.993: W/dalvikvm(12171): Link of class 'Lcom/google/gdata/util/common/net/UriParameterMap;' failed 
05-01 21:10:43.993: W/dalvikvm(12171): VFY: unable to find class referenced in signature (Lcom/google/gdata/util/common/net/UriParameterMap;) 
05-01 21:10:43.993: W/dalvikvm(12171): Unable to resolve superclass of Lcom/google/gdata/util/common/net/UriParameterMap; (26) 
05-01 21:10:44.003: W/dalvikvm(12171): Link of class 'Lcom/google/gdata/util/common/net/UriParameterMap;' failed 
05-01 21:10:44.003: W/dalvikvm(12171): VFY: unable to resolve static field 2621 (EMPTY_MAP) in Lcom/google/gdata/util/common/net/UriParameterMap; 
05-01 21:10:44.003: W/dalvikvm(12171): Unable to resolve superclass of Lcom/google/gdata/util/common/net/UriParameterMap; (26) 
05-01 21:10:44.003: W/dalvikvm(12171): Link of class 'Lcom/google/gdata/util/common/net/UriParameterMap;' failed 
05-01 21:10:44.003: W/dalvikvm(12171): VFY: unable to resolve static method 8229: Lcom/google/gdata/util/common/net/UriParameterMap;.parse (Ljava/lang/String;)Lcom/google/gdata/util/common/net/UriParameterMap; 
05-01 21:10:44.033: W/dalvikvm(12171): VFY: unable to resolve static method 65: Lcom/google/common/collect/Maps;.newHashMap (Ljava/util/Map;)Ljava/util/HashMap; 
05-01 21:10:44.033: W/dalvikvm(12171): VFY: unable to resolve static method 64: Lcom/google/common/collect/Maps;.newHashMap()Ljava/util/HashMap; 
05-01 21:10:44.033: W/dalvikvm(12171): Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lcom/google/gdata/client/Service; 
05-01 21:10:44.033: W/dalvikvm(12171): threadid=1: thread exiting with uncaught exception (group=0x40d9f1f8) 
05-01 21:10:44.043: E/AndroidRuntime(12171): FATAL EXCEPTION: main 
05-01 21:10:44.043: E/AndroidRuntime(12171): java.lang.ExceptionInInitializerError 
05-01 21:10:44.043: E/AndroidRuntime(12171): at com.example.youtubeuploaddata.YoutubeUploadData.onCreate(YoutubeUploadData.java:55) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at android.app.Activity.performCreate(Activity.java:4519) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at android.os.Looper.loop(Looper.java:137) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at android.app.ActivityThread.main(ActivityThread.java:4464) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at java.lang.reflect.Method.invokeNative(Native Method) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at java.lang.reflect.Method.invoke(Method.java:511) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:822) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:589) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at dalvik.system.NativeStart.main(Native Method) 
05-01 21:10:44.043: E/AndroidRuntime(12171): Caused by: java.lang.NoClassDefFoundError: com.google.common.collect.Maps 
05-01 21:10:44.043: E/AndroidRuntime(12171): at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:118) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:100) 
05-01 21:10:44.043: E/AndroidRuntime(12171): at com.google.gdata.client.Service.<clinit>(Service.java:555) 
05-01 21:10:44.043: E/AndroidRuntime(12171): ... 15 more 

在這種狀態我明白,YouTube的數據不適用於Android項目 我需要做什麼來訂購這個目標?

請幫助...

回答

1

隨意去通過我的例子開源項目,它利用數據API V3爲這個.. https://code.google.com/p/ytd-android/

+0

當時我添加項目我收到消息「內置路徑包含項目」Youtube Direct ...「的重複條目'src',當項目已經在eclipse中,我不知道如何解決它們的許多compailer錯誤出現,你知道如何解決它嗎?。謝謝你的幫助... – idan 2013-05-03 15:56:11

+0

你不需要整個項目,你可以使用UploadService.java和ResumableUpload。java如果你想運行整個項目,請做git clone,然後更新Maven的依賴關係並鏈接到google play服務,這一切都在主頁 – 2013-05-03 16:24:22

+0

解釋謝謝我真的很感激它,我刪除了你提到的,仍然有錯誤我坐在該項目在未來幾天認識他並讓他工作。 – idan 2013-05-03 17:21:19

2

你的問題是這樣的:

Caused by: java.lang.NoClassDefFoundError: com.google.common.collect.Maps 

com.google.common.collect.Maps未找到。你可能會錯過一個圖書館或者manifest有問題。

相關問題