YouTubePlayerFragment cannot be cast to android.support.v4.app.Fragment -


im stuck on 3 days , have tried have come across after lots of searching ,this post last resort, im trying open youtubeplayerfragment using navigation drawer

youtubeplayerfragment cannot cast android.support.v4.app.fragment problem

edit question : have updated code have used youtubeplayersupportfragment instead of youtubeplayerfragment ,i error in displayview method (case 4: fragment = new youtube(); break;) in main activity saying cannot convert youtube fragment , cannot logcat since cant run it

edit question 2: code updated again have runtime problem ,heres logcat

07-22 22:15:09.782: e/androidruntime(20603): fatal exception: main 07-22 22:15:09.782: e/androidruntime(20603): process: net.frankandwalters, pid: 20603 07-22 22:15:09.782: e/androidruntime(20603): java.lang.nullpointerexception: attempt invoke virtual method 'void com.google.android.youtube.player.youtubeplayerview.a()' on null object reference 07-22 22:15:09.782: e/androidruntime(20603):    @ com.google.android.youtube.player.youtubeplayersupportfragment.onstart(unknown source) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.support.v4.app.fragment.performstart(fragment.java:1502) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:957) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1104) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.support.v4.app.backstackrecord.run(backstackrecord.java:682) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.support.v4.app.fragmentmanagerimpl.execpendingactions(fragmentmanager.java:1460) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.support.v4.app.fragmentmanagerimpl$1.run(fragmentmanager.java:440) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.os.handler.handlecallback(handler.java:739) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.os.handler.dispatchmessage(handler.java:95) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.os.looper.loop(looper.java:135) 07-22 22:15:09.782: e/androidruntime(20603):    @ android.app.activitythread.main(activitythread.java:5351) 07-22 22:15:09.782: e/androidruntime(20603):    @ java.lang.reflect.method.invoke(native method) 07-22 22:15:09.782: e/androidruntime(20603):    @ java.lang.reflect.method.invoke(method.java:372) 07-22 22:15:09.782: e/androidruntime(20603):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:908) 07-22 22:15:09.782: e/androidruntime(20603):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:703) 

heres java code, hope 1 can , thank you

 import android.app.activity; import android.os.bundle; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.toast;  import com.google.android.youtube.player.youtubeinitializationresult; import com.google.android.youtube.player.youtubeplayer; import com.google.android.youtube.player.youtubeplayersupportfragment;  public class youtube extends youtubeplayersupportfragment implements youtubeplayer.oninitializedlistener {      public static youtube newinstance() {         youtube fragment = new youtube();         return fragment;     }      private void init(){         initialize("aizasybybxmsbpvhmkgm4rkqpneb4tf4yobvaky", this);     }      public youtube() {     }      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);     }       public view oncreateview(layoutinflater inflater, viewgroup container,                              bundle savedinstancestate) {         view view = inflater.inflate(r.layout.youtubefragment, container, false);          youtube ytf = newinstance();         ytf.init();         getactivity().getsupportfragmentmanager().begintransaction()                 .add(r.id.youtube_player, ytf)                 .commit();           return view;     }      @override     public void onattach(activity activity) {         super.onattach(activity);     }      @override     public void ondetach() {         super.ondetach();     }      @override     public void oninitializationsuccess(youtubeplayer.provider provider, youtubeplayer player, boolean wasrestored) {         if (!wasrestored) {             player.cuevideo("ncgqdjiotg0");         }     }      @override     public void oninitializationfailure(youtubeplayer.provider provider, youtubeinitializationresult youtubeinitializationresult) {         toast.maketext(getactivity(), "failured initialize!", toast.length_long).show();     }   } 

this xml code

<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"      android:background="@drawable/background"     android:id="@+id/fragment_youtube_player_holder" >    <fragment   android:name="com.google.android.youtube.player.youtubeplayersupportfragment"   android:id="@+id/youtube_player"   android:layout_width="match_parent"   android:layout_height="match_parent"/>     </linearlayout> 

here main activity contains navigation drawer

      import java.util.arraylist;  import net.frankandwalters.adapter.navdrawerlistadapter; import net.frankandwalters.model.navdraweritem; import android.support.v4.app.fragment; import android.content.res.configuration; import android.content.res.typedarray; import android.os.bundle; import android.support.v4.app.actionbardrawertoggle; import android.support.v4.app.fragmentactivity; import android.support.v4.widget.drawerlayout; import android.util.log; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.adapterview; import android.widget.listview;  public class mainactivity extends fragmentactivity {      private drawerlayout mdrawerlayout;     private listview mdrawerlist;     private actionbardrawertoggle mdrawertoggle;       // nav drawer title     //private charsequence mdrawertitle;      // used store app title     //private charsequence mtitle;      // slide menu items     private string[] navmenutitles;     private typedarray navmenuicons;      private arraylist<navdraweritem> navdraweritems;     private navdrawerlistadapter adapter;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);            //mtitle = mdrawertitle = gettitle();          // load slide menu items         navmenutitles = getresources().getstringarray(r.array.nav_drawer_items);          // nav drawer icons resources         navmenuicons = getresources()                 .obtaintypedarray(r.array.nav_drawer_icons);          mdrawerlayout = (drawerlayout) findviewbyid(r.id.drawer_layout);         mdrawerlist = (listview) findviewbyid(r.id.list_slidermenu);          navdraweritems = new arraylist<navdraweritem>();          // adding nav drawer items array         // home         navdraweritems.add(new navdraweritem(navmenutitles[0], navmenuicons.getresourceid(0, -1)));         // find people         navdraweritems.add(new navdraweritem(navmenutitles[1], navmenuicons.getresourceid(1, -1)));         // photos         navdraweritems.add(new navdraweritem(navmenutitles[2], navmenuicons.getresourceid(2, -1)));         // communities, add counter here         navdraweritems.add(new navdraweritem(navmenutitles[3], navmenuicons.getresourceid(3, -1)));         // pages         navdraweritems.add(new navdraweritem(navmenutitles[4], navmenuicons.getresourceid(4, -1)));         // what's hot,  add counter here         navdraweritems.add(new navdraweritem(navmenutitles[5], navmenuicons.getresourceid(5, -1)));         navdraweritems.add(new navdraweritem(navmenutitles[6], navmenuicons.getresourceid(6, -1)));         navdraweritems.add(new navdraweritem(navmenutitles[7], navmenuicons.getresourceid(7, -1)));         navdraweritems.add(new navdraweritem(navmenutitles[8], navmenuicons.getresourceid(8, -1)));         navdraweritems.add(new navdraweritem(navmenutitles[9], navmenuicons.getresourceid(9, -1)));         navdraweritems.add(new navdraweritem(navmenutitles[10] + " disc 3", navmenuicons.getresourceid(10, -1)));           // recycle typed array         navmenuicons.recycle();          mdrawerlist.setonitemclicklistener(new slidemenuclicklistener());          // setting nav drawer list adapter         adapter = new navdrawerlistadapter(getapplicationcontext(),                 navdraweritems);         mdrawerlist.setadapter(adapter);          // enabling action bar app icon , behaving toggle button         getactionbar().setdisplayhomeasupenabled(true);         getactionbar().sethomebuttonenabled(true);          mdrawertoggle = new actionbardrawertoggle(this, mdrawerlayout,                 r.drawable.ic_drawer, //nav menu toggle icon                 r.string.app_name, // nav drawer open - description accessibility                 r.string.app_name // nav drawer close - description accessibility         ) {             public void ondrawerclosed(view view) {                 //getactionbar().settitle(mtitle);                 // calling onprepareoptionsmenu() show action bar icons                 invalidateoptionsmenu();             }              public void ondraweropened(view drawerview) {                 //getactionbar().settitle(mdrawertitle);                 // calling onprepareoptionsmenu() hide action bar icons                 invalidateoptionsmenu();             }         };         mdrawerlayout.setdrawerlistener(mdrawertoggle);          if (savedinstancestate == null) {             // on first time display view first nav item             displayview(0);         }     }      /**      * slide menu item click listener      * */     private class slidemenuclicklistener implements             listview.onitemclicklistener {         @override         public void onitemclick(adapterview<?> parent, view view, int position,                 long id) {             // display view selected nav drawer item             displayview(position);         }     }      @override     public boolean oncreateoptionsmenu(menu menu) {         getmenuinflater().inflate(r.menu.main, menu);         return true;     }      @override     public boolean onoptionsitemselected(menuitem item) {         // toggle nav drawer on selecting action bar app icon/title         if (mdrawertoggle.onoptionsitemselected(item)) {             return true;         }         // handle action bar actions click         switch (item.getitemid()) {         case r.id.action_settings:             return true;         default:             return super.onoptionsitemselected(item);         }     }      /* *      * called when invalidateoptionsmenu() triggered      */     @override     public boolean onprepareoptionsmenu(menu menu) {         // if nav drawer opened, hide action items         boolean draweropen = mdrawerlayout.isdraweropen(mdrawerlist);         menu.finditem(r.id.action_settings).setvisible(draweropen && !draweropen);         return super.onprepareoptionsmenu(menu);     }      /**      * diplaying fragment view selected nav drawer list item      * */     private void displayview(int position) {         // update main content replacing fragments         fragment fragment = null;         switch (position) { //      case 0: //          fragment = new home(); //          break; //      case 1: //          fragment = new forum(); //          break; //      case 2: //          fragment = new facebook(); //          break; //      case 3: //          fragment = new twitter(); //          break;         case 4:              //fragment  = youtube.newinstance();  //          if(youtubeintents.isyoutubeinstalled(getbasecontext()) ) { //                 if(youtubeapiserviceutil.isyoutubeapiserviceavailable(getbasecontext()) != youtubeinitializationresult.success) { //                    // fragment = new youtube(); //                     intent intent = youtubeintents.createuserintent(this, "frankandwalters"); //                      startactivity(intent); //                      //               } else  {                        fragment = new youtube();                      //intent intent = youtubeintents.createuserintent(this, "frankandwalters");                        // startactivity(intent); //               } //              }             break; //      case 5: //          fragment = new instagram(); //          break; //      case 6: //          fragment = new google(); //          break; //      case 7: //          fragment = new gigography(); //          break; //      case 8: //          fragment = new discography(); //          break; //      case 9: //          fragment = new lyrics(); //          break; //      case 10: //          fragment = new souvenirs(); //          break;          default:             break;         }          if (fragment != null) {             getsupportfragmentmanager().begintransaction()                     .replace(r.id.frame_container, fragment).commit();              // update selected item , title, close drawer             mdrawerlist.setitemchecked(position, true);             mdrawerlist.setselection(position);             //settitle(navmenutitles[position]);             mdrawerlayout.closedrawer(mdrawerlist);         } else {             // error in creating fragment             log.e("mainactivity", "error in creating fragment");         }     }  //  @override //  public void settitle(charsequence title) { //      mtitle = title; //      getactionbar().settitle("the frank , walters"); //  }      /**      * when using actionbardrawertoggle, must call during      * onpostcreate() , onconfigurationchanged()...      */      @override     protected void onpostcreate(bundle savedinstancestate) {         super.onpostcreate(savedinstancestate);         // sync toggle state after onrestoreinstancestate has occurred.         mdrawertoggle.syncstate();     }      @override     public void onconfigurationchanged(configuration newconfig) {         super.onconfigurationchanged(newconfig);         // pass configuration change drawer toggls         mdrawertoggle.onconfigurationchanged(newconfig);     }   } 

replace youtubeplayerfragment youtubeplayersupportfragment version uses support version of fragment.


Comments

Popular posts from this blog

c - Bitwise operation with (signed) enum value -

xslt - Unnest parent nodes by child node -