【问题标题】:using youtube data in android project在 android 项目中使用 youtube 数据
【发布时间】:2013-04-25 19:27:12
【问题描述】:

我的目标是使用 youtube 而不是服务器来存储视频。 我需要youtube提供以下功能 1.上传视频并获取他的网址。 2. 搜索匹配开发者标签的视频。

为此,我在这里找到了那些帖子

Using YouTube Data Api in Android

Creating a playlist with Youtube DATA API on Android

阅读完这些帖子后,我安装了 eclipse 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

我添加到我的 android 项目的 libs 文件夹中的那些 zip 文件与上面链接中提到的 youtube 完全一样...

在我的项目中,我添加了 Internet 权限、导入包并添加了这一行: YouTubeService 服务 = new 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;
    }


 }

我的项目包含这个 jar

此时我在我的设备上测试应用程序并收到这些错误:

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 项目 我需要做什么才能订购这个目标???

请帮忙...

【问题讨论】:

    标签: android youtube-api google-api-java-client


    【解决方案1】:

    请随意浏览我的示例开源项目,它为此使用了 Data API v3。 https://code.google.com/p/ytd-android/

    【讨论】:

    • 在我添加项目时,我收到消息“构建路径包含项目“Youtube Direct ...”的重复条目'src',并且当项目已经在 Eclipse 中时,我没有出现许多编译器错误知道如何解决它们出现,您知道如何解决吗?。谢谢您的帮助...
    • 你不需要整个项目,你可以使用 UploadService.java 和 ResumableUpload.java 如果你想运行整个项目,做 git clone,然后更新 Maven 依赖并链接到 google play服务,首页都有说明
    • 谢谢你我真的很感激,我删除了你提到的,仍然有错误我在接下来的几天里坐在项目上了解他并让他工作。
    • 我没有成功运行这个Android项目,请您告诉我如何使项目在Android上运行...,即使只是上传到YouTube的部分stackoverflow.com/questions/16375568/…
    【解决方案2】:

    你的问题是这样的:

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

    com.google.common.collect.Maps 未找到。你想念一个图书馆或者manifest有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-11
      • 2012-12-19
      • 1970-01-01
      • 2017-03-14
      • 2015-03-22
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      相关资源
      最近更新 更多