Android ViewRoot NullPointerException

Android ViewRoot NullPointerException,android,nullpointerexception,Android,Nullpointerexception,这会导致以下错误: this.addContentView(view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); 不确定问题是什么,以下是跟踪: ViewRoot.draw(boolean) line: 1440 ViewRoot.performTraversals() line: 1172 ViewRo

这会导致以下错误:

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));


    }


}

我强烈建议您修改视频播放器活动的使用方式。如果只想播放视频,请使用
VideoView
并将其嵌入到XML布局中。你启动一个活动并窃取其视图的方式看起来像是在试图绕过框架,这将导致像这样的各种奇怪错误。似乎我对
ActivityGroup
s不太了解。不过,我认为这可能会以某种方式简化。

您运行的是哪种Android版本?您是否检查了活动是否已开始?可能是视图为空。目标是Android 2.2。检查活动是否开始是什么意思?我已经对其进行了调试,并为该活动调用了onCreate。所以我在mainUI线程上运行它,我使用“this”关键字…它是否引用了我希望引用的LiveTabGroup实例?考虑到这一点,我如何在不使用“this”的情况下引用特定的活动?
this
将引用LiveTabGroup实例。onCreate方法也来自
ActivityGroup
。我问的是
CameraListView
活动是否正在启动。
视图
引用了该活动,因此我询问该活动是否为空。您可以通过
if(view==null)Log.d(“LiveTabGroup”,“问题就在这里”)轻松检查它什么是mediaplayer视图?我猜你指的是视频视图?是的,我指的是视频视图。在答案文本中更正。