2013-01-23 88 views
7

我收到ActivityNotFoundException错误,当我试图在姜面包上运行youtube api StandAlonePlayerActivity。在那里,因为它运行在ICS精细YouTube上的ActivityNotFoundException对姜饼

这里是我的日志猫

01-23 15:34:28.071: E/AndroidRuntime(3378): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.google.android.youtube.api.StandalonePlayerActivity.START (has extras) } 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1515) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.app.Activity.startActivityForResult(Activity.java:2988) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:701) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.support.v4.app.Fragment.startActivity(Fragment.java:787) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at com.example.demo.TipsFragment$2.onClick(TipsFragment.java:143) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.view.View.performClick(View.java:2533) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.view.View$PerformClick.run(View.java:9320) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.os.Handler.handleCallback(Handler.java:587) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.os.Handler.dispatchMessage(Handler.java:92) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.os.Looper.loop(Looper.java:150) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at android.app.ActivityThread.main(ActivityThread.java:4389) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at java.lang.reflect.Method.invoke(Method.java:507) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
01-23 15:34:28.071: E/AndroidRuntime(3378):  at dalvik.system.NativeStart.main(Native Method) 

,这里是我已经用于在startActivity

首发球员

String vid=getYoutubeVideoId(vlink); 
Intent intent=YouTubeStandalonePlayer.createVideoIntent(getActivity(),DEVELOPER_KEY, vid, 0,true,false); 
startActivity(intent); 

我收到错误代码

这里是getYoutubeVideoID()代码:

/* 
    * Getting id of video from url 
    */ 
    public static String getYoutubeVideoId(String youtubeUrl) 
    { 
     String video_id=""; 
     if (youtubeUrl != null && youtubeUrl.trim().length() > 0 && youtubeUrl.startsWith("http")) 
     { 

      String expression = "^.*((youtu.be"+ "\\/)" + "|(v\\/)|(\\/u\\/w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#\\&\\?]*).*"; // var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/; 
      CharSequence input = youtubeUrl; 
      Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE); 
      Matcher matcher = pattern.matcher(input); 
      if (matcher.matches()) 
      { 
       String groupIndex1 = matcher.group(7); 
       if(groupIndex1!=null && groupIndex1.length()==11) 
        video_id = groupIndex1; 
      } 
     } 
     return video_id; 
    } 
+1

你有开发者密钥?你能给我你使用的视频的ID?发布getYoutubeVideoId(vlink)的代码; – edwin

+0

@edwin是的,我有开发人员密钥。我在我的问题中提到它在ICS上运行。我试过用SimplePlayerView从YouTube YouTube api – Manoj

回答

17

首先检查您的设备上是否有可用的youtube服务,然后尝试启动该活动。 YouTubeApiServiceUtil.isYouTubeApiServiceAvailable(mContext)。也可以尝试从Google Play安装YouTube应用。

从文档微小注: Note: Users need to run version 4.2.16 of the mobile YouTube app (or higher) to use the API.

编辑:这是你如何使用它:

if(YouTubeApiServiceUtil.isYouTubeApiServiceAvailable(mContext).equals(YouTubeInitializationResult.SUCCESS)){ 
    //This means that your device has the Youtube API Service (the app) and you are safe to launch it. 

}else{ 
    // Log the outcome, take necessary measure, like playing the video in webview :) 
} 

YouTubeInitializationResult枚举这里https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubeInitializationResult

而且关于上述类的理念: https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubeApiServiceUtil

+0

你可以粘贴一个片段YouTubeApiServiceUtil.isYouTubeApiServiceAvailable(上下文上下文) – Manoj

+0

它是在API中,请参阅上面的编辑 –

0

你在模拟器上运行应用程序吗?它可能无法在模拟器上工作,因为默认情况下未安装youtube播放器。尝试在实际设备上运行它。

+1

我在Htc资源管理器上运行它 – Manoj

+0

是安装在您的设备上的Youtube应用程序? –

+0

是的,我安装了YouTube应用程序。 :-( – Manoj

0

为了使用YouTube api为Android则需要3参数

1)的YouTube Developer Key

2)视频ID

3)最新官方YouTube Android App(4.2.16版)

通过看你日志猫我认为其中一个失踪

Refer

+0

它在Ics上运行正常。我已经从[here](https://developers.google)下载了最新版本的youtube api。com/youtube/android/player/downloads /) – Manoj

+1

好的,我测试了Android 2.1上的演示应用程序,它对我来说工作正常.. youtube api需要最新版本的YouTube视频播放官方应用程序。您手机中的youtube应用是最新版本吗? – edwin

1

设备应该安装最新的YouTube应用程序。

0

您必须在您的设备上安装YouTube Android应用程序,这对我很有用!