SAXNotRecognizedException同时使用gdata api for youtube在android中集成?

时间:2011-07-18 10:48:35

标签: android youtube-api gdata saxparser

我正在我的Android应用程序中集成youtube。我正在使用gdata youtube库。

`

    YouTubeManager ym = new YouTubeManager(clientID);

    List<YoutubeVideo> videos;
    try {
        videos = ym.retrieveVideos(textQuery, maxResults, filter, timeout);
        for (YoutubeVideo youtubeVideo : videos) {
            System.out.println(youtubeVideo.getWebPlayerUrl());
            System.out.println("Thumbnails");
            for (String thumbnail : youtubeVideo.getThumbnails()) {
                System.out.println("\t" + thumbnail);
            }
            System.out.println(youtubeVideo.getEmbeddedWebPlayerUrl());
            System.out.println("************************************");
        }

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   `  

我已经进口jar了, 的activation.jar Apache的mime4j-0.6.jar GDATA核-1.0.jar GDATA媒体-1.0.jar GDATA-的YouTube-2.0.jar 谷歌-收集-1.0-rc2.jar httpmime-4.0.3.jar 的mail.jar 的servlet.jar

现在我在

处收到异常SAXNotRecognizedException
  

videos = ym.retrieveVideos(textQuery,maxResults,filter,timeout);

任何人都可以告诉我这里发生了什么错误。如何解决这个错误?或者任何其他方式将youtube集成到Android应用程序中。

1 个答案:

答案 0 :(得分:1)

根本原因报告为问题9493.

  

http://code.google.com/p/android/issues/detail?id=9493

可以在这里找到解决方法:

  

http://darutk-oboegaki.blogspot.com/2011/11/solution-for-gdata-java-clients.html

gdata-core中的SecureGenericXMLFactory故意禁用某些功能,但需要其中一些才能从YouTube检索数据。这项工作的基本思路如下:

(1)从gdata-core-1.0.jar中删除原始的SecureGenericXMLFactory

cd gdata-src.java-1.46.0/gdata/java/lib
mkdir gdata-core-1.0-no-SecureGenericXMLFactory
cd gdata-core-1.0-no-SecureGenericXMLFactory
jar xf ../gdata-core-1.0.jar
rm -rf com/google/gdata/util/common/xml/parsing
jar cfm ../gdata-core-1.0-no-SecureGenericXMLFactory.jar META-INF/MANIFEST.MF com

(2)用原始步骤(1)创建的新gdata-core-1.0.jar替换原来的gdata-core-1.0.jar。 (在Eclipse中)

(3)将SecureGenericXMLFactory的原始源代码复制到您的Android项目中。

(4)在禁用必要功能的代码行之前,在SecureSAXParserFactory的构造函数中添加一个无条件的'return'。

// "if (true)" was added to avoid a compilation error in Eclipse.
if (true)
{
    return;
}