Как я могу получить доступ к приложению в MainActivity, которое мы получаем в Ionic Projects - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь интегрировать плагин Swrve в мой проект Android. Ниже приведен код, который мы получаем в MainActivity

public class MainActivity extends BridgeActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Initializes the Bridge
    this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
      // Additional plugins you've installed go here
      // Ex: add(TotallyAwesomePlugin.class);
      add(MyPlugin.class);
    }});

    try {
      SwrveConfig config = new SwrveConfig();
      // To use the EU stack, include this in your config.
      // config.setSelectedStack(SwrveStack.EU);
      SwrveSDK.createInstance(this, <app_id>, "<api_key>", config);
    } catch (IllegalArgumentException exp) {
      Log.e("SwrveDemo", "Could not initialize the Swrve SDK", exp);
    }
  }
}

Когда я запускаю код, я получаю следующую ошибку

error: incompatible types: MainActivity cannot be converted to Application

Ссылочный код на сайте следующий

public class YourApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        try {
            SwrveConfig config = new SwrveConfig();
            // To use the EU stack, include this in your config.
            // config.setSelectedStack(SwrveStack.EU);
            SwrveSDK.createInstance(this, <app_id>, "<api_key>", config);
        } catch (IllegalArgumentException exp) {
            Log.e("SwrveDemo", "Could not initialize the Swrve SDK", exp);
        }
    }
}

В ионном проекте у меня есть MainActivity, а не

public class MainActivity extends BridgeActivity {

В документации у меня есть это

public class YourApplication extends Application {

и в строке инициализации. Это ключевое слово пытается обратиться к приложению, а не к MainActivity

SwrveSDK.createInstance(this, <app_id>, "<api_key>", config);

У меня нет никаких знаний о нативном коде, поэтому я был бы признателен, если бы кто-нибудь смог мне помочь и объяснить, что может быть за исправление.

1 Ответ

0 голосов
/ 30 октября 2018

Вам необходимо создать класс Application для этого кода.

Создайте новый класс Java и установите для него расширение Application:

public class SomeApp extends Application {}

Затем добавьте его в AndroidManifest в теге application:

<application
    ...
    android:name=".SomeApp">

Затем следуйте руководству по установке, поместив то, что должно быть в классе Application, в класс приложения, который вы только что создали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...