title: VideoView throws IllegalStateException
body: <p>I have a videoview in my app which plays videos from my expansion file. Here is the code:</p>
  
  <pre><code>private VideoView _vv;
      private static final Uri CONTENT_URI = Uri.parse("content://--PACKAGENAMEHIDDENFORSECURITY--.EHZipUriProvider");
      private static final String VIDEO_NAME  = "b1.mp4";
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_video_player);
      _vv = (VideoView) findViewById(R.id.vv);
  
      startVideoPlayback();
  }
  
  private void startVideoPlayback()
  {
      MediaController mediaController = new MediaController(this);
      mediaController.setAnchorView(_vv);
  
      _vv.setMediaController(mediaController);
      _vv.setVideoURI(Uri.parse(CONTENT_URI + "/" + VIDEO_NAME));
      _vv.start();
  }
  </code></pre>
  
  <p>And the stacktrace:</p>
  
  <pre><code>java.lang.IllegalStateException
              at android.media.MediaPlayer.prepareAsync(Native Method)
              at android.widget.VideoView.openVideo(VideoView.java:335)
              at android.widget.VideoView.access$2100(VideoView.java:71)
              at android.widget.VideoView$7.surfaceCreated(VideoView.java:607)
              at android.view.SurfaceView.updateWindow(SurfaceView.java:572)
              at android.view.SurfaceView.access$000(SurfaceView.java:86)
              at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:175)
              at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:847)
              at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1897)
              at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1019)
              at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5725)
              ...
  </code></pre>
  
  <p>I have no idea why it does this. Can anyone help?</p>
  
  <p>My layout is just a videoview.</p>