2011-06-03 78 views
0

这将导致错误:的Android的ViewRoot NullPointerException异常

this.addContentView(view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 
      ViewGroup.LayoutParams.FILL_PARENT)); 

不知道是什么问题,这里是跟踪:

ViewRoot.draw(boolean) line: 1440 
ViewRoot.performTraversals() line: 1172 
ViewRoot.handleMessage(Message) line: 1736 
ViewRoot(Handler).dispatchMessage(Message) line: 99 
Looper.loop() line: 143 
ActivityThread.main(String[]) line: 4701  
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
Method.invoke(Object, Object...) line: 521 
ZygoteInit$MethodAndArgsCaller.run() line: 860 
ZygoteInit.main(String[]) line: 618 
NativeStart.main(String[]) line: not available [native method] 

这里是我的代码:

public class LiveTabGroup extends ActivityGroup implements MoveToScreenNotification.handler 
{ 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     EventBus.subscribe(MoveToScreenNotification.class, this); 

     View view = getLocalActivityManager().startActivity("CameraListView", new Intent(this,CameraListView.class). 
       addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 

     this.setContentView(view); 

    } 

    @Override 
    public void onMoveToScreenNotification(MoveToScreenNotification notif) 
    { 
     if (notif.newScreen == MoveToScreenNotification.SCREEN_MOVIEPLAYER_LIVE) 
     { 
      SugarLoafSingleton.currentCamera.url = notif.videoURL; 
      // Throw UI management on main thread 
      runOnUiThread(new Runnable(){ 
      public void run() 
      { 
       StartPlayer(); 
      } 
      }); 

     } 

    } 

    public void StartPlayer() 
    { 
     View view = getLocalActivityManager().startActivity("VideoPlayer", new Intent(this,VideoPlayerView.class). 
       addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
     this.addContentView(view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, 
       ViewGroup.LayoutParams.FILL_PARENT)); 


    } 


} 
+0

你在运行什么Android版本? – Femi 2011-06-03 19:38:07

+0

您是否确认该活动实际开始?这可能是该视图为空。 – Aleadam 2011-06-03 19:40:20

+0

针对Android 2.2。通过检查活动是否开始,你的意思是什么?我已经调试过它,并且我的onCreate被称为该活动。所以我在主UI线程上运行这个,我使用“this”关键字...它是否引用我的LiveTabGroup实例,因为它是我想要的呢?考虑到这一点,我将如何引用特定的活动而不使用“this”? – spentak 2011-06-03 19:47:30

回答

2

我我强烈建议您改变您使用视频播放器活动的方式。如果您只想播放视频,请使用VideoView并将其嵌入到XML布局中。 你开始一个活动并窃取它的视图的方式看起来像你正在尝试解决这个框架,这将导致像这样的各种古怪的错误。看起来好像我不明白ActivityGroup很好。不过,我认为这可能会以某种方式简化。

+0

什么是mediaplayer视图?我想你的意思是videoview? – MByD 2011-06-03 20:36:08

+0

是的,我的意思是一个视频视图。更正了答案文本。 – 2011-06-04 00:53:55

相关问题