我正在制作一个Cordova插件,因此需要使用CordovaActivity扩展MainActivity类。我还需要使用AppCompatActivity。在本机应用程序中,我使用AppCompatActivity扩展了MainActivity,并且一切正常,但是在我的Cordova插件中,我无法扩展两次。

我正在尝试启动一些代码以保持在后台运行。当我在onCreate中尝试此操作时:

appCompat = new AppCompatActivity();
Intent intent = new Intent(this, MyClass.class);
appCompat.startService(intent);


我定义了全局变量:

private AppCompatActivity appCompat;


我在运行时收到有关上下文(appCompat)为空的错误。这是实际的错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference


有谁知道我如何使用AppCompatActivity而不将其用作扩展?

(编辑:为了清楚起见,我附加了整个班级)

public class MainActivity extends CordovaActivity {
    private AppCompatActivity appCompat;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Context context = this.getBaseContext();
        Intent intent = new Intent(context, MyClass.class);
        appCompat = new AppCompatActivity();
        appCompat.startService(intent);  // CAUSES CRASH AT RUNTIME
    }
}

最佳答案

我更新了CordovaActivty类以扩展AppCompatActivity,因为我不得不处理工具栏。
我不确定这是否正确,但是对我来说效果很好。

关于java - 如何在Android Java代码中同时使用CordovaActivity和AppCompatActivity?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39610529/

10-10 09:32