#java #android
И так, делаю VPN клиент и получаю непонятную ошибку... A reference to an enclosing class is requiered public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Запрос прав на подключение VPN... Intent intent = VpnService.prepare(MainActivity.this); startActivityForResult(intent, BIND_AUTO_CREATE); } // Права полученны... @Override protected void onActivityResult(int requestCode, int resultCode) { if (requestCode == BIND_AUTO_CREATE && resultCode == RESULT_OK) { VpnService.Builder bb = new VpnService.Builder(); } } } new VpnService.Builder() Этот кусок кода подкреслен красным..не компилиться! Может ктото знает что нужно сделать? Чего не хватает? И что я делаю не так.
Ответы
Ответ 1
Судя по всему, класс Builder – это внутренний (inner) класс класса VpnService. Инстанс внутреннего класса можно создать только в контексте внешнего класса. Тут два решения: либо объявить класс Builder статическим вложенным (static nested) классом (добавить модификатор static) – такие классы могут существовать отдельно от внешнего класса, либо создавать инстанс класса Builder в контексте класса VpnService (имея его инстанс). UPD: public class VpnService { public static class Builder { } } Теперь где-то извне можно создать инстанс билдера: VpnService.Builder builder = new VpnService.Builder();
Комментариев нет:
Отправить комментарий