#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();
Комментариев нет:
Отправить комментарий