2013-10-29 51 views
4

我試圖在適配器中放入YouTubePlayerView,但沒有成功。錯誤YouTubePlayerView XML

我不想調用一個新的意圖。我想在我的應用程序中顯示視頻。

我把YouTubeAndroidPlayerApi.jar在我的文件夾,庫,並期待在項目屬性,這一切都OK(我跟着這個tutorial

這裏是我的XML代碼和日誌。

<LinearLayout 
     android:id="@+id/ll_contentExercicios_LayoutVideoGif" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <com.google.android.youtube.player.YouTubePlayerView 
      android:id="@+id/vv_contentExercicios_YoutubeVideo" 
      android:layout_width="300dp" 
      android:layout_height="150dp" /> 


     <ImageView 
      android:id="@+id/iv_contentExercicios_GifExercicio" 
      android:layout_width="100dp" 
      android:layout_height="150dp" 
      android:layout_marginLeft="30dp" > 
     </ImageView> 
</LinearLayout> 

10-29 13:03:42.598: E/AndroidRuntime(4513): FATAL EXCEPTION: main 
10-29 13:03:42.598: E/AndroidRuntime(4513): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.timo.atlas/br.com.timo.atlas.PrincipalActivity}: android.view.InflateException: Binary XML file line #121: Error inflating class com.google.android.youtube.player.YouTubePlayerView 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.app.ActivityThread.access$600(ActivityThread.java:140) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.os.Handler.dispatchMessage(Handler.java:99) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.os.Looper.loop(Looper.java:137) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.app.ActivityThread.main(ActivityThread.java:4895) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at java.lang.reflect.Method.invoke(Method.java:511) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at dalvik.system.NativeStart.main(Native Method) 
10-29 13:03:42.598: E/AndroidRuntime(4513): Caused by: android.view.InflateException: Binary XML file line #121: Error inflating class com.google.android.youtube.player.YouTubePlayerView 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.view.LayoutInflater.createView(LayoutInflater.java:613) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at br.com.timo.atlas.adapters.ExerciciosAdapter.getView(ExerciciosAdapter.java:107) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at br.com.timo.atlas.adapters.MusculoAdapter.getView(MusculoAdapter.java:185) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at br.com.timo.atlas.PrincipalActivity.onCreate(PrincipalActivity.java:275) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.app.Activity.performCreate(Activity.java:5163) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2061) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  ... 11 more 
10-29 13:03:42.598: E/AndroidRuntime(4513): Caused by: java.lang.reflect.InvocationTargetException 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at java.lang.reflect.Constructor.constructNative(Native Method) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  ... 23 more 
10-29 13:03:42.598: E/AndroidRuntime(4513): Caused by: java.lang.IllegalStateException: A YouTubePlayerView can only be created with an Activity which extends YouTubeBaseActivity as its context. 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at com.google.android.youtube.player.YouTubePlayerView.(Unknown Source) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  at com.google.android.youtube.player.YouTubePlayerView.(Unknown Source) 
10-29 13:03:42.598: E/AndroidRuntime(4513):  ... 26 more 

PS:我讀的Youtube API文檔,它說,這是必要的活動延伸YouTubeBaseActivity使用一個YouTubePlayerView所以我知道我需要一些方法來創建YouTubePlayerView我BaseAdapter裏面。

感謝和問候。

回答

0

是的,您需要擴展YouTubeBaseActivity,或者您可以使用android.support.v4的YouTubePlayerSupportFragment和FrameActivity。

<fragment 
    android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment" 
    android:id="@+id/youtube_fragment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 
0

YouTube不允許在活動中使用多個YouTube播放器視圖。 我不知道你的要求,但你可以使用viewpager的片段和裏面的片段,你可以使用childfragmentmanager動態地將youtubefragment添加到你的片段。