Java Android:在使用YouTubePlayerSupportFragment时膨胀类片段时出错

Java Android:在使用YouTubePlayerSupportFragment时膨胀类片段时出错,java,android,fragment,android-youtube-api,Java,Android,Fragment,Android Youtube Api,将列表适配器内的YouTubePlayerSupportFragment用作列表项行时,膨胀类片段时出错 我的列表项目行.xml <RelativeLayout android:layout_width="match_parent" android:id="@+id/relativeLayout_youtube_player" android:layout_height="@dimen/preivew_image_height"> <frag

将列表适配器内的YouTubePlayerSupportFragment用作列表项行时,膨胀类片段时出错

我的列表项目行.xml

<RelativeLayout
    android:layout_width="match_parent"
    android:id="@+id/relativeLayout_youtube_player"
    android:layout_height="@dimen/preivew_image_height">


    <fragment
        android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
        android:id="@+id/youtube_player_fragment"
        android:layout_width="match_parent"
        android:layout_height="@dimen/preivew_image_height"/>


    <ImageView
        android:id="@+id/button_youtube_player"
        android:layout_width="match_parent"
        android:layout_height="@dimen/preivew_image_height"
        android:scaleType="center"
        android:visibility="gone"
        android:contentDescription="@null"
        android:src="@drawable/play" />

</RelativeLayout>
错误日志:

FATAL EXCEPTION: main
                                                            Process: com.app.user, PID: 7617
                                                            android.view.InflateException: Binary XML file line #81: Binary XML file line #15: Error inflating class fragment
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                                                                at com.app.user.adapter.adapter.base.FeedListAdapter.getView(FeedListAdapter.java:1005)
                                                                at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)
                                                                at android.widget.AbsListView.obtainView(AbsListView.java:2346)
                                                                at android.widget.ListView.makeAndAddView(ListView.java:1876)
                                                                at android.widget.ListView.fillDown(ListView.java:702)
                                                                at android.widget.ListView.fillGap(ListView.java:666)
                                                                at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5060)
                                                                at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4608)
                                                                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
                                                                at android.view.Choreographer.doCallbacks(Choreographer.java:670)
                                                                at android.view.Choreographer.doFrame(Choreographer.java:603)
                                                                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
                                                                at android.os.Handler.handleCallback(Handler.java:746)
                                                                at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                at android.os.Looper.loop(Looper.java:148)
                                                                at android.app.ActivityThread.main(ActivityThread.java:5443)
                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
                                                             Caused by: android.view.InflateException: Binary XML file line #15: Error inflating class fragment
                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)
                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                                at android.view.LayoutInflater.parseInclude(LayoutInflater.java:971)
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:831)
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                                at com.app.user.adapter.adapter.base.FeedListAdapter.getView(FeedListAdapter.java:1005) 
                                                                at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) 
                                                                at android.widget.AbsListView.obtainView(AbsListView.java:2346) 
                                                                at android.widget.ListView.makeAndAddView(ListView.java:1876) 
                                                                at android.widget.ListView.fillDown(ListView.java:702) 
                                                                at android.widget.ListView.fillGap(ListView.java:666) 
                                                                at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5060) 
                                                                at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4608) 
                                                                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 
                                                                at android.view.Choreographer.doCallbacks(Choreographer.java:670) 
                                                                at android.view.Choreographer.doFrame(Choreographer.java:603) 
                                                                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 
                                                                at android.os.Handler.handleCallback(Handler.java:746) 
                                                                at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                at android.os.Looper.loop(Looper.java:148) 
                                                                at android.app.ActivityThread.main(ActivityThread.java:5443) 
                                                                at java.lang.reflect.Method.invoke(Native Method) 
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
                                                             Caused by: java.lang.IllegalArgumentException: Binary XML file line #15: Duplicate id 0x7f1001d0, tag null, or parent id 0x7f1001cf with another fragment for com.google.android.youtube.player.YouTubePlayerSupportFragment
                                                                at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2293)
                                                                at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
                                                                at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:356)
                                                                at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
                                                                at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754)
                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                                at android.view.LayoutInflater.parseInclude(LayoutInflater.java:971) 
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:831) 
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                                at com.app.user.adapter.adapter.base.FeedListAdapter.getView(FeedListAdapter.java:1005) 
                                                                at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) 
                                                                at android.widget.AbsListView.obtainView(AbsListView.java:2346) 
                                                                at android.widget.ListView.makeAndAddView(ListView.java:1876) 
                                                                at android.widget.ListView.fillDown(ListView.java:702) 
                                                                at android.widget.ListView.fillGap(ListView.java:666) 
                                                                at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5060) 
                                                                at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4608) 
                                                                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 
                                                                at android.view.Choreographer.doCallbacks(Choreographer.java:670) 
                                                                at android.view.Choreographer.doFrame(Choreographer.java:603) 
                                                                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 
                                                                at android.os.Handler.handleCallback(Handler.java:746) 
                                                                at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                at android.os.Looper.loop(Looper.java:148) 
                                                                at android.app.ActivityThread.main(ActivityThread.java:5443) 
                                                                at java.lang.reflect.Method.invoke(Native Method)
另外,我只发现了一个问题,但仍然没有找到解决办法,我该怎么做呢

我有活动->片段1->列表视图->行->YouTubePlayerSupportFragment

参考链接后,我更改了代码:

 holder.youtube_player_fragment = new YouTubePlayerSupportFragment();

                if (feedListData.getIsVideo()!=null && feedListData.getIsVideo().equals("1")) {
                    holder.youtube_player_fragment.initialize(activity.getResources().getString(R.string.YouTube_API_KEY), new YouTubePlayer.OnInitializedListener() {
                        @Override
                        public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
                            if (null == youTubePlayer) return;
                            if (!b) {
                                youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
                                Log.e("getUrl", ":" + Utility.getYoutubeVideoId(feedListData.getUrl()));
                                youTubePlayer.cuePlaylist(Utility.getYoutubeVideoId(feedListData.getUrl()));


                            }
                        }

                        @Override
                        public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {

                        }
                    });

                    FragmentManager fragmentManager = activity.getFragmentManager();
                    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.youtube_player_frame, holder.youtube_player_fragment);
                    fragmentTransaction.commit();

但它显示了找到YouTubePlayerSupportFragment所需的android.app.Fragment的错误。所以我尝试使用supportFragmentv4,但在适配器内部我无法获取它的对象。

您有什么错误?您能将logcat附加到问题上吗?@faranjit请查看我的错误日志。我认为您的问题是:
由以下原因引起的:java.lang.IllegalArgumentException:二进制XML文件行#15:重复id 0x7f1001d0,标记null,或者父id 0x7f1001cf,带有com.google.android.youtube.player.YouTubePlayerSupportFragment的另一个片段
@faranjit我看到了这个问题,但没有得到如何解决我的问题的答案。@faranjit在查看了你的链接后,我尝试了解决方案,但它显示了错误,作为关于找到的supportFramgent required android.app.fragment的新问题更新。和内部适配器cannit获得支持framgent。您有什么错误?您能将logcat附加到问题上吗?@faranjit请查看我的错误日志。我认为您的问题是:
由以下原因引起的:java.lang.IllegalArgumentException:二进制XML文件行#15:重复id 0x7f1001d0,标记null,或者父id 0x7f1001cf,带有com.google.android.youtube.player.YouTubePlayerSupportFragment的另一个片段
@faranjit我看到了这个问题,但没有得到如何解决我的问题的答案。@faranjit在查看了你的链接后,我尝试了解决方案,但它显示了错误,作为关于找到的supportFramgent required android.app.fragment的新问题更新。和内部适配器cannit获得支持framgent。
 holder.youtube_player_fragment = new YouTubePlayerSupportFragment();

                if (feedListData.getIsVideo()!=null && feedListData.getIsVideo().equals("1")) {
                    holder.youtube_player_fragment.initialize(activity.getResources().getString(R.string.YouTube_API_KEY), new YouTubePlayer.OnInitializedListener() {
                        @Override
                        public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
                            if (null == youTubePlayer) return;
                            if (!b) {
                                youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
                                Log.e("getUrl", ":" + Utility.getYoutubeVideoId(feedListData.getUrl()));
                                youTubePlayer.cuePlaylist(Utility.getYoutubeVideoId(feedListData.getUrl()));


                            }
                        }

                        @Override
                        public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {

                        }
                    });

                    FragmentManager fragmentManager = activity.getFragmentManager();
                    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.youtube_player_frame, holder.youtube_player_fragment);
                    fragmentTransaction.commit();