标签: parcelfiledescriptor

Android VpnService.Builder.establish()偶尔会为null

当我尝试为我的VpnService创建隧道接口时,我收到以下错误:

Attempt to invoke virtual method 'java.lang.String android.os.ParcelFileDescriptor.toString()' on a null object reference
Run Code Online (Sandbox Code Playgroud)

我目前唯一的解决方法是在发生这种情况时重启设备.如果我不这样做,我根本无法创建隧道.

我创建隧道的代码:

// This is inside my VpnService implementation 

private ParcelFileDescriptor configureTunnelWithPushOpts(PushOpts popts)
{
    VpnService.Builder builder = this.new Builder();

    builder.setMtu       ( currentServerPrefs.SERVER_MTU );
    builder.addAddress   ( popts.ip, 32                  );
    builder.addDnsServer ( popts.dns1                    );
    builder.addDnsServer ( popts.dns2                    );
    builder.addRoute     ( "0.0.0.0", 0                  );


    // Note: Blocking mode is now enabled in native
    // code under the setFileDescriptor function.
    // builder.setBlocking(true);

    builder.setConfigureIntent(
            PendingIntent.getActivity(
                    this,
                    0,
                    new Intent(
                            this,
                            MainActivity.class
                    ), …
Run Code Online (Sandbox Code Playgroud)

android parcelfiledescriptor android-vpn-service

5
推荐指数
1
解决办法
976
查看次数