Java 当我呼叫一个模块时,我的应用程序崩溃,该模块是';s功能是切换到模块内的活动

Java 当我呼叫一个模块时,我的应用程序崩溃,该模块是';s功能是切换到模块内的活动,java,android,Java,Android,我正在创建一个模块,用于将活动从用户项目中的当前活动切换到模块中的特定活动 模块内部是一个类,该类充当要使用库的项目和它应该切换到的活动之间的桥梁。模块中的桥接类如下所示: public class Starter extends AppCompatActivity { Context context; public Starter(Context context){ this.context = context; } public voi

我正在创建一个模块,用于将活动从用户项目中的当前活动切换到模块中的特定活动

模块内部是一个类,该类充当要使用库的项目和它应该切换到的活动之间的桥梁。模块中的桥接类如下所示:

 public class Starter extends AppCompatActivity {

    Context context;

    public Starter(Context context){
        this.context = context;
    }

    public void OpenOkraWidget(){
        Intent intent = new Intent(this.context, OkraWebActivity.class);
        startActivity(intent);
    }
}
    public class ProjectActivity extends AppCompatActivity {

    Button button;

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

        button = findViewById(R.id.okra_btn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openOkraWidget();
            }
        });

    }

    public void openOkraWidget(){
        Starter starter = new Starter(ProjectActivity.this);
        starter.OpenOkraWidget();
    }
}
在上述意图中调用的OkraWebActivity.class是一个类 模块内部及其布局

在我的主要项目类中,我将模块称为:

 public class Starter extends AppCompatActivity {

    Context context;

    public Starter(Context context){
        this.context = context;
    }

    public void OpenOkraWidget(){
        Intent intent = new Intent(this.context, OkraWebActivity.class);
        startActivity(intent);
    }
}
    public class ProjectActivity extends AppCompatActivity {

    Button button;

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

        button = findViewById(R.id.okra_btn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openOkraWidget();
            }
        });

    }

    public void openOkraWidget(){
        Starter starter = new Starter(ProjectActivity.this);
        starter.OpenOkraWidget();
    }
}
我的问题是当我试图运行我得到的代码时

java.lang.NullPointerException:尝试调用虚拟方法 'android.app.ActivityThread$ApplicationThread null对象上的android.app.ActivityThread.getApplicationThread() 参考文献

来自Intent Intent=新Intent(this.context, OkraWebActivity.class); 星触觉(意向);在模块内部的Starter.class中


为什么会出现此错误,为什么我的代码不能按预期正常工作?

启动程序不应该是活动。它从上下文继承的startActivity方法要求该类由Android管理并由Android启动。您应该使用提供给Starter的上下文对象调用start activity

试试这个:

公共类初学者{
语境;
公共启动程序(上下文){
this.context=上下文;
}
public void OpenOkraWidget(){
Intent Intent=新的Intent(this.context,OkraWebActivity.class);
这个。上下文。起始触觉(意图);
}
}

您从未在android中创建
活动的对象<代码>新启动器()
这就是罪魁祸首。。请多读一点关于
Activity
component的内容。@ADM那么,我该如何弥合能够让我现在切换活动的差距呢?只需从
Starter
中复制
OpenOkraWidget
方法的代码即可。。