首页 > 解决方案 > 我如何访问我们在 Ionic Projects 中获得的 MainActivity 中的应用程序

问题描述

我正在尝试将 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 {

并在初始化行中,此关键字试图引用 Application 而不是 MainActivity

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

我对本机代码一无所知,所以如果有人可以指导我并解释我可以解决的问题,我将不胜感激。

标签: javaandroidionic-frameworkcapacitor

解决方案


您需要为该代码创建一个应用程序类。

创建一个新的 Java 类并将其设置为扩展应用程序:

public class SomeApp extends Application {}

然后将其添加到您的 AndroidManifest 中,在application标签中:

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

然后按照设置指南,将应该在 Application 类中的内容放入您刚刚创建的 Application 类中。


推荐阅读