开始通过意向的活动时,NullPointerException异常意向、异常、NullPointerException

2023-09-04 03:05:26 作者:清酒半壶

我有以下code,我修整开始给予一定的条件下一项活动是真实的。但在 startActivity(controllerActivity); 我收到显示java.lang.NullPointerException

在舞台上的 controllerActivity 变量包含意向{行为= android.intent.action.Main}

 发thr_authenticateUser =新主题(新的Runnable(){
    @覆盖
    公共无效的run(){
        ...
        布尔_authenticationStatus =通过Boolean.valueOf(authenticationReplyValue);
        如果(_authenticationStatus){
            意图controllerActivity =新的意向书(android.intent.action.Main);
            startActivity(controllerActivity); //空指针异常
        }
    }
});
thr_authenticateUser.start();
 

在进一步的调查结果我发现,它是失败的确切地点是内部主要活动的`的onCreate()

 保护无效的onCreate(最终捆绑savedInstanceState){

        super.onCreate(savedInstanceState);
        。getWindow()requestFeature(Window.FEATURE_ACTION_BAR);
        的setContentView(R.layout.main_view); //这里:显示java.lang.NullPointerException
 

不过视图名称 main_view 是正确的,它的存在。 清单:

 <活动
    机器人:主名称=
    机器人:标签=@字符串/ APP_NAME
    机器人:launchMode =singleInstance
    机器人:windowSoftInputMode =adjustPan>
    <意向滤光器>
        <作用机器人:名称=android.intent.action.Main/>

        <类机器人:名称=android.intent.category.DEFAULT/>
    &所述; /意图滤光器>
< /活性GT;
 
地摊经济实火 五菱击败长城,拿下6月新能源车市亚军

Compelte堆栈跟踪:

 显示java.lang.NullPointerException
        在android.app.Activity.startActivityForResult(Activity.java:3370)
        在android.app.Activity.startActivityForResult(Activity.java:3331)
        在android.app.Activity.startActivity(Activity.java:3566)
        在android.app.Activity.startActivity(Activity.java:3534)
        在com.citypulse.citypulse.User $ 1.运行(User.java:57)
        在java.lang.Thread.run(Thread.java:856)
 

解决方案

获取的背景下,开始你的活动

  getBaseContext()startActivity(controlledActivity)。
 

  YourActivity.this.startActivity(controlledActivity);
 

I have following code, I am truing to start an activity given certain condition is true. But over startActivity(controllerActivity); I am getting java.lang.NullPointerException

The controllerActivity variable at the stage contains a valid value of Intent { act=android.intent.action.Main }

Thread thr_authenticateUser = new Thread(new Runnable() {
    @Override
    public void run() {
        …
        Boolean _authenticationStatus = Boolean.valueOf(authenticationReplyValue);
        if (_authenticationStatus) {
            Intent controllerActivity = new Intent("android.intent.action.Main");
            startActivity(controllerActivity); //NullPointerException
        }
    }
});
thr_authenticateUser.start();

Over further findings I found out that the exact place where it is failing is inside Main activitY’s `onCreate()

  protected void onCreate(final Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
        setContentView(R.layout.main_view); // HERE: java.lang.NullPointerException

However the view name main_view is correct and it exists. Manifest:

<activity
    android:name=".Main"
    android:label="@string/app_name"
    android:launchMode="singleInstance"
    android:windowSoftInputMode="adjustPan" >
    <intent-filter>
        <action android:name="android.intent.action.Main" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

Compelte stack trace:

java.lang.NullPointerException
        at android.app.Activity.startActivityForResult(Activity.java:3370)
        at android.app.Activity.startActivityForResult(Activity.java:3331)
        at android.app.Activity.startActivity(Activity.java:3566)
        at android.app.Activity.startActivity(Activity.java:3534)
        at com.citypulse.citypulse.User$1.run(User.java:57)
        at java.lang.Thread.run(Thread.java:856)

解决方案

Get the context to start your activity

getBaseContext().startActivity(controlledActivity);

or

YourActivity.this.startActivity(controlledActivity);