调用安卓vpn框架,startActivityForResult 提示NULL

我想用java调用安卓的VPN框架,VpnService.prepare(this)返回一个Intent ,但是这个Intent传入startActivityForResult 以后,就提示java.lang.NullPointerException,Intent在传入startActivityForResult之前,我已经做了非空判断,求解!!!只有这么多C币了,全给你

void launchVPN(){
  Intent intent = VpnService.prepare(this);
        if (intent != null) {
            try {
                startActivityForResult(intent, 0);
            }
            catch(Exception e){
                Log.d("main", ""+e);
            }
        } else {
            onActivityResult(0, Activity.RESULT_OK, null);
        }
}

this传的值看对不对